类型转换须知

来源:互联网 发布:网络聊天平台有哪些 编辑:程序博客网 时间:2024/05/22 06:51
不同类型的数字进行运算的时候,系统会强制改变数据类型,例如下面的代码:
【例2
// TypeConvert.java
public class TypeConvert {
 public static void main(String[] args) {
      byte b1 = 3;
      byte b2 = 4;
      byte b3=b1+b2;
 }
}
在编译的时候会报下面的错误:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
 Type mismatch: cannot convert from int to byte
 at TypeConvert.main(TypeConvert.java:6)
原因在于执行b1+b2的时候,系统会把b1b2的类型都转换成int类型然后计算,计算的结果也是int类型,所以把int类型赋值给byte类型,这时候就产生错误了。
类型转换的基本规则如下:
     操作数中如果有double类型,则都会转换成double类型。
     如果有float类型,则会转换成float类型。
     如果有long类型,则会转换成long类型。
     其他的都会转换成int类型。
如何解决上面的错误呢?可以参考下面的代码:
【例3
// TypeConvert2.java
public class TypeConvert2 {
 public static void main(String[] args) {
      byte b1 = 3;
      byte b2 = 4;
      // 对计算结果进行强制转换
      byte b3 = (byte)(b1+b2);
 }
}

                                                             摘自:http://student.csdn.net/space.php?uid=124362&do=blog&id=14970

原创粉丝点击