JAVA开发常用类(九)

6. 类型转换

Java是一种类型强制的语言,所以在对对待数据类型时,有严格的类型检查,如果类型不正确时,将会报错。在很多情况下,类型可以通过转换得到,如将int转换为float等。

Java的类型转换有2种:

6.1. 基本类型转换

基本类型转换时,一个精度小的基本类型(如byte)转换为一个精度大的基本类型(如int),可以采用隐式转换,即:

value1 = value2

但是当一个精度大的基本类型(如int)转换为一个精度小或精度相等的基本类型(如float)时,由于存在精度丢失的情况,就必须采用显式转换,格式如下:

value1 = (typename)value2

6.2. 对象类型转换

类的实例可以被转换为其他类的实例,但是有一个限制:源和目的类必须通过继承相联系——即一个类必须是另外一个类的子类。

当一个子类对象被转换为一个父类对象时,由于子类拥有父类对象的一切,可以视作是精度大的数据类型转换为精度小的类型,其转换可以采用隐式转换。

当一个父类对象被转换为一个子类对象时,就必须进行显示转换。在转换过程中不是损失了任何信息,而是得到了子类所定义的全部方法和变量。这种情况下的强制转换,其实是产生了一个对原有对象的类的引用(可以理解为指针,java中没有指针概念,然而使用引用和数组可以实现指针的大部分功能),而原有对象继续存在。

6.3. 基本类型与对象类型转换

任何情况下都无法将一个基本类型转换为对象类型,或反之。但是在java.lang包中,为每个基本类型定义了其对应的类,如float对应的Float类,以及Boolean、Byte等。除了类名用大写字母开头外,在使用时需要调用相关方法来获取实际的基本类型值。如:

int i = new Integer(123).intValue();

posted @ 2013-02-13 11:33  玻璃城市  阅读(299)  评论(0编辑  收藏  举报