首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

基本类型 加减运算 类型转换有关问题讨论

2012-12-19 
基本类型 加减运算 类型转换问题讨论先来看下面的 代码:?public class Test{public static void main(Stri

基本类型 加减运算 类型转换问题讨论

先来看下面的 代码:

?

public class Test{public static void main(String[] args){short i ;i = i + 1; //编译错误i += 1;//正确byte j = 1; //正确byte k = 2;byte l = j + k; //错误}}
?

?

1、关于 i = i + 1: i + 1是int型,赋值给short 型变量需要做显示转换。

?

2、+= 、-= 属于复合赋值运算符(Compound Assignment Operator),他们是一种赋值运算符,虽然他们有算数的功能,但应该属于赋值运算符的范畴,而不属于算术运算符一类。

?

Java规定:复合赋值运算符中的转换都要编译器负责。

?

这就是为什么使用 += 、-=不需要显示转换的原因。

?

3、算术运算符(Arithmetic Operator)

Java中,所有整数的算术运算符都会产生int型的结果(除非有long参与其中)。因此?

?

byte l = j + k;

?虽然 j 、 k 都是byte型的,但根据上面“所有整数的算术运算都会产生int型的结果“的规则, j + k 结果是int型。这样将int赋值给byte 就需要强制转换。

?

?

?

?

?

?

?

?

david.wang2011-03-09

热点排行