包装类的主要功能是针对于基本数据类型的对象转换而实现的,并且随着JDK版本的更新,包装类的功能也在发生着改变,有着更多的支持。
认识包装类
Object类最大的特点是所有类的父类,并且可以接收所有的数据类型,但是在这个过程之中就存在有个问题:基本数据类型并不是一个类,所以现在如果要想将基本数据类型以类的形式进行处理,那么就需要对其进行包装。
范例:以int数据为例实现一个包装处理的定义
class Int {
private int data ; // 包装了一个基本数据类型
public Int(int data) {
this.data = data ;
}
public int intValue() {
return this.data ;
}
}
public class JavaDemo {
public static void main(String args[]) {
Object obj = new Int(10) ; // 装箱:将基本数据类型保存在包装类之中
int x = ((Int)obj).intValue() ; // 拆箱:从包装类对象中获取基本数据类型
System.out.println(x * 2) ;
}
}
基本数据类型进行包装处理后可以像对象一样进行引用传递,同时也可以使用Object类来进行接收,但是如果我们都已经可以发现基本数据类型与Object类型之间的缺陷,那么JDK也早就发现了同样的问题,所以JDK1.0的时候就提供有了包装类的概念,基本数据类型一共有八种,所以提供有八种包装类,那么这个八种包装类的基本定义如下。
现在可以发现在Java中包装类一共提供有两种类型:
1.对象型包装类(Object直接子类):Boolean、Character;
2.数值型的包装类(Number直接子类):Byte、Short、Integer、Long、Float、Double;
Number是一个抽象类,以后只要是看见了Number都应该明确的表示它是一个数字的概念,这个类定义有如下方法:
No. | 方法名称 | 类型 | 描述 |
01 | public byte byteValue() | 普通 | 从包装类中获取byte数据 |
02 | public short shortValue() | 普通 | 从包装类中获取short数据 |
03 | public abstract int intValue() | 普通 | 从包装类中获取int数据 |
04 | public abstract long longValue() | 普通 | 从包装类中获取long数据 |
05 | public abstract float floatValue() | 普通 | 从包装类中获取float数据 |
06 | public abstract double doubleValue() | 普通 | 从包装类中获取double 数据 |
Number类中的方法就是直接提供有获取包装类中基本数据类型的功能,一共只定义有六个方法。