简介
包装类主要功能是针对与基本数据类型的对象转换而实现的,并且随着JDK版本的更新,包装类的功能也在发生改变,有着更多支持
为什么会有包装类
Object类最大的特点是所有类的父类,并且可以接收所有的数据类型,但是在这个过程之中就存在有个问题:基本数据类型并不是一个类,所以现在如果要将基本数据类型以类的形式进行处理,那么就需要对其进行包装。
解决方法
基本数据类型进行包装处理后可以像对象一样进行引用传递,同时也可以使用Object类来进行接收。JDK1.0的时候已经提供了包装类的概念,基本数据类型一共有八种,所以提供有八种包装类,那么这八种包装类的基本定义如下:
‒ 对象型包装类(Object直接子类):Boolean,Character
‒ 数值型包装类(Number直接子类):Integer,Byte,Long,Short,Double,Float(Number是一个抽象类,以后只要是看见了Number都应该明确表示它是一个数字的概念)
NO | 方法名称 | 类型 | 描述 |
---|---|---|---|
1 | public byte byteValue() | 普通 | 从包装类中获取byte数据 |
2 | public short shortValue() | 普通 | 从包装类中获取short数据 |
3 | public int int Value() | 普通 | 从包装类中获取int 数据 |
4 | public abstract long longValue() | 普通 | 从包装类中获取long数据 |
5 | public abstract float floatValue() | 普通 | 从包装类中获取float数据 |
6 | public abstract double doubleValue() | 普通 | 从包装类中获取double数据 |
装箱和拆箱
基本数据类型的包装类都是为了基本数据类型转为对象提供的,这样对于基本数据类型和包装类之间有如下的处理关系
‒ 数据装箱:将基本数据类型保存到包装类之中,一般可以利用构造方法完成
‒ Integer类:public Integer(int value)
‒ Double类:public Double(double value)
‒ Boolean类:public Boolean(boolean value)
public Boolean(boolean value)
‒ 数据拆箱:从包装类种获取基本类型
‒ 数值型包装类已经由Number类定义了拆箱的方法了
‒ Boolean型:public boolean booleanValue()
Double obj = new Double(1.1);//装箱
double num = obj.doubleValue(obj);//拆箱
JDK1.9之后,对于所有包装类之中提供的构造方法就变成了过期处理,不建议用户再使用了,这是因为从JDK1.5以后为了方便处理提供了自动的装箱与拆箱的操作,所以这种手工的模式基本上都没人用了.
Object object = 1.1;//double自动装箱为Double,向上转型为Object
double num = (Double) object;//向下转型为包装类再自动拆箱
注意:
以后进行包装类相等判断的时候一定要使用equals()完成,而包装类本身也需要考虑占位的长度,如果超过了一位的内容就需要使用equals()比较,如果不超过则使用“== ”即可判断