MENU

什么是包装类?

• November 17, 2020 • 面向对象编程

什么是包装类?

Object可以接受所有的数据类型,但是基本数据类型并不是一个类,如果要想将基本数据类型以类的形式进行处理,就需要对其进行包装
两个概念:
装箱:将基本数据类型保存在包装类中
拆箱:从包装类中取出基本数据类型


实例:int数据实现一个包装处理的定义

class Int{
    private int data;
    public Int(int date) {
        this.data = date;
    }
    public int intValue(){
        return this.data;
    }
}
public class Main {
  public static void main(String[] args) {
      Int temp = new Int(10);  //装箱
      int x = temp.intValue();      //拆箱
    System.out.println(x);
  }
}

包装类有两种类型

对象型包装类:(Object直接子类)Boolean、Number、Character

数值型包装类:(Number直接子类)Byte、Integer、Short、Float、Double

Number类是一个抽象类,必须熟悉6个抽象方法

包装类的六大常用抽象方法
序号方法描述
1public byte byteValue()从包装类中获取byte数据
2public short shortValue()从包装类中获取short数据
3public abstract int intValue()从包装类中获取int数据
4public abstract long longValue()从包装类中获取long数据
5public abstract float floatValue()从包装类中获取float数据
6public abstract double doubleValue()从包装类中获取double数据

由表可见,Number类中的方法就是直接提供有获取包装类中基本数据类型的功能



记住!!!

装箱:将基本数据类型保存在包装类中

拆箱:从包装类中取出基本数据类型

在jdk1.9之前,一般使用构造方法完成装箱操作
例如:

Boolean temp = new Boolean(true);  //装箱
boolean  x = temp.booleanValue();      //拆箱

而在1.9之后,这种方法已经不再使用了,我现在用的jdk1.8,idea编译器直接给了删除线,表明现在这种构造方式来进行装箱操作过时了

因为自jdk1.5之后为了方便处理,提供了自动的装箱与拆箱操作。

自动装箱与拆箱:

Integer obj = 10; //自动装箱,不再使用构造方法手动了
int num = obj; //自动拆箱
obj ++; //包装类对象可以直接参与数学运算

自动装箱操作最大的好处是可以实现Object类直接接收基本数据类型的操作

进行包装类相等判断的时候一定要使用equals()完成


代码编译器:IntelliJ IDEA 2020.02

Archives QR Code Tip
QR Code for this page
Tipping QR Code