2.6.1 自动类型转换
在程序中已经对变量定义了一种数据类型,若想以另外一种数据类型表示时,要符合以下两个条件:
(1)转换前的数据类型与转换后的数据类型兼容;
(2)转换后的数据类型比转换前的数据类型表示的范围大。
【例2-7】不同整形数据类型的转换。
程序运行结果为:
【程序说明】
(1)c=a*b的计算过程是:在a*b的表达式中a、b变量的数据类型不同,a比b的数据类型的范围要小,Java首先将a的数据类型进行转换,将其由short类型转换为int类型(int类型对short类型向下兼容),转换后再进行相乘运算,最后将结果赋值给变量c,c的数据类型也要求必须是int类型,如果定义为short类型,会出现错误提示信息。
(2)同样d/b运算中也是先将b由int型转换为float类型,然后进行计算,最后结果的数据类型是float类型,这里int类型与float类型也相互兼容。
系统在对表达式进行计算时,首先对变量类型进行转换,使其变量的类型一致,然后进行表达式的计算,计算结果的数据类型必须与表达式中的变量类型兼容,而且取值范围不小于表达式中的变量类型。