黑马程序员技术交流社区

标题: java中的数据类型装换隐式转换是什么呀? [打印本页]

作者: 子阳zy    时间: 2014-8-17 21:14
标题: java中的数据类型装换隐式转换是什么呀?
java中的数据类型装换隐式转换是什么呀?
作者: 怀念黑海岸    时间: 2014-8-17 23:08
    就拿浮点数来说吧,float是32位,最小值是-2的-149次方,最大是2的(2-2的-23次方)*127次方,double的最小值是2的-1074次方,最大值为(2-2的-52次方)*2的1023次方,你如果要精确的表示一个数,你认为用谁更准确,double,所以如果当你试图用一个float类型的变量来代表一个双精度的double数值时有没有可能导致这个double数的精度变差呢?肯定有,比如我一个double是2的-1000次方,你能用float表示吗,float最小都才-149次方。所以我们想用一个float表示double的话那么要显式的表示出来,提醒编程者,这儿会导致精度损失。而你如果用double去表示一个float呢,完全就不存在这种情况了,因为他能完全的表示你这个float的精度。所以不需要显式的说明,这就是隐式转换。系统自己帮我们转化好了。
       在继承或者面向接口编程中,我们会常常用到这种思想,一个子类Zi继承自父类Fu,那么当父类的变量Fu obj指向子类new Son()时是不需要说明的,你子类都是由我派生出去的,我儿子还需要向别人证明吗?但是你如果如果有一个子类的变量Zi  zi=obj了,那么系统会提醒你。这儿需要显式转换,因为父类表示的范围比子类更广泛。
      希望对你有用。
作者: dhgcy    时间: 2014-8-19 11:08
简单地说Java中隐式类型的数据转换就是自动数据类型转换




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2