4.1.2 打包(Wrap)基本数据类型
回过头来看看基本数据类型:long、int、double、float、boolean、byte等。在Java中这些并不是对象,它们只是纯粹的数据,除了数值本身的信息之外,基本数据类型不带有其他的信息或可操作的方法。
您已经看过几个操作对象的范例,也知道使用对象的好处,对象本身可以携带更多的信息,所以如果基本数据类型可以对象的形式存在,它可以带有更多的信息并提供相对应的操作方法。在J2SE 5.0之前,如果想要让基本数据类型能像对象一样操作,那么要使用Long、Integer、Double、Float、Boolean、Byte等类来打包(Wrap)基本数据类型。
Long、Integer、Double、Float、Boolean等类是所谓的Wrapper类。正如其名称所表示的,这些类的主要目的,就是让您提供一个对象实例作为“壳”,将基本数据类型包到这个对象中。这样就可以操作这个对象,就好像将基本数据类型当作对象一样操作,可以直接看看范例4.4来加以体会。
Ü 范例4.4 WrapperDemo.java
public class WrapperDemo {
public static void main(String[] args) {
int data1 = 10;
int data2 = 20;
// 使用Integer来打包int数据
Integer data1Wrapper = new Integer(data1);
Integer data2Wrapper = new Integer(data2);
// 直接除以3
System.out.println(data1 / 3);
// 转为double值再除以3
System.out.println(data1Wrapper.doubleValue() / 3);
// 进行两个值的比较
System.out.println(data1Wrapper.compareTo(data2Wrapper));
}
}
|
在第2章中提到过,如果将两个整数进行相除,默认会将小数点后的数据去除。而在范例4.4中,使用Integer将整数打包,并使用它的doubleValue()返回double值,再进行相除时小数点后就不会被去除。而Integer上也提供compareTo()可以直接比较与另一个Integer对象是否相等,如果是就返回0,比指定值小的话返回–1,比指定值大的话返回1。与使用==只能比较是否相同,compareTo()方法返回更多的信息。执行的结果如下:
3 3.3333333333333335 –1 |
依照同样的方式,也可以将long、double、float、boolean、byte等,使用对应的Long、Double、Float、Boolean、Byte等类进行打包,之后就可以进行对象操作。
![]() |
| 图4-1 Eclipse上的对象方法提示 |
| 回书目 上一节 下一节 |