JAVA的包装类
一、Java是一门面向对象的语言,但是在Java中设计了8种的基本数据类型却不是面向对象的,这在实际使用中十分的不方便,为了弥补掉这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样的八个基本数据类型对应的类称为包装类。
- 基本数据类型所对应的引用数据类型。
- Object可统一所有数据,包装类的默认值是null
- 包装类中实际上就是持有了一个基本类型的属性,作为数据的存储空间(Byte中有一个byte属性),还提供了常用的转型方法,以及常量
- 对应的类型如下
基本类型 | 包装器类型 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
二、Java中的包装器类主要的目的:
- 提供一种机制,将基本值“包装”到对象中,从而使基本值能够包含在为对象而保留的操作中,java5增加了自动装箱和拆箱,可以由java自动处理了。
- 为基本值提供分类功能。这些功能大多数于各种转换有关:在基本值和String对象间相互转换,在基本值和String对象之间按不同基数转换。
三、包装类共同的方法
- 带有基本值参数并创建包装类对象的构造函数。
例如 Integer in = new Integer(145); - 带有字符串参数并创建包装类对象的构造函数.
例如:Byte by = new Byte(”127“); - 可生成对象基本值的typeValue方法.
例如:obj.intValue(); - 将字符串转换为基本值的parseType方法。
例如:Integer.parseInt(“110”); - 生成哈稀表代码的hashCode方法。
例如:obj.hasCode(); - 对同一个类的两个对象进行比较的equals()方法。
例如:obj1.eauqls(obj2); - 生成字符串表示法的toString()方法。
例如:obj.toString(). - 字符型包装类型转换成普通类型
byteValue()
shortValue()
intValue()
longValue()
doubleValue()
floatValue()
四、装箱和拆箱
Java为每种基本数据类型都提供了对应的包装器类型,Java SE5之前,如果要生成一个数值为1的Integer对象
Integer i = new Integer(1);
Integer i = new Integer("1");
- Java SE5开始就提供了自动装箱的特性
Integer i = 1; 装箱
- 这个过程中会自动根据数值创建对应的 Integer对象,这就是装箱。
- 拆箱跟装箱对应,就是自动将包装器类型转换为基本数据类型。
Integer i = 1; //装箱
int i2 = i; //拆箱
- 装箱就是自动将基本数据类型转换为包装器类型;拆箱就是自动将包装器类型转换为基本数据类型。
注意
Integer number = null;
int f = number.intValue();
编写时不会报错,但编译是通不过的
- 装箱过程是通过调用包装器的valueOf方法实现的,而拆箱过程是通过调用包装器的xxxValue方法实现的。(xxx代表对应的基本数据类型)。