一个关于byte的问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 09:03:38
public byte count(byte b1,byte b2){
return __________
}

空格里 为什么填(byte)(b1-b2)?为什么b1-b2就不对呢?

因为你定义的返回类型是byte
(byte)(b1-b2)?
上边这个
byte是类型转换的。
而b1-b2就不能确定他的类型了

java里在这种情况下默认把比int类型范围小的类型(byte,short)转化为int类型再计算 所以b1-b2的返回值实际上是int类型 所以要显式转换

java里面只要两个值进行了运算,
其最小类型为int型,

所以要显示转换类型