JAVA面向对象(十 三)------ 包装类、自动装箱、拆箱

一、为什么需要包装类

包装类的主要功能是针对基本数据类型的对象转换而实现的。若想把基本数据类型以类或者对象的形式进行处理,就需要转换成包装类。

二、有哪些包装类

基本数据类型有八种,对应的包装类也有八种,对应关系如下:

概括的说,包装类分为两种:

  1. 对象型包装类(Object直接子类):Boolean、Character
  2. 数值型包装类(Number直接子类):Integer、Byte、Long、Short、Float、Double

三、装箱、拆箱

装箱:将基本数据类型保存到包装类中(利用包装类的构造方法即可)

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

public class Demo {
    public static void main(String[] args) {
        // 自动装箱
        Integer integer = 10;
        // 自动拆箱
        int num = integer;
        // 包装类的对象可以直接参与数学运算
        integer ++ ;
        System.out.println(num * integer);
    }
}

结果:

110

自动装箱的好处是可以实现Object接收基本数据类型的操作,例如:

public class Demo {
    public static void main(String[] args) {
        // 自动装箱(double自动装箱为Double,再向上转型为Object)
        Object obj = 16.6;
        double num = (Double) obj;
        System.out.println(num);
    }
}

结果:

16.6

 

四、包装类如何判断相等

观察以下代码及结果:

public class Demo {
    public static void main(String[] args) {
        Integer x = 10;
        Integer y = 10;
        System.out.println(x == y); // true
    }
}
public class Demo {
    public static void main(String[] args) {
        Integer x = 127;
        Integer y = 127;
        System.out.println(x == y); // true
    }
}
public class Demo {
    public static void main(String[] args) {
        Integer x = 128;
        Integer y = 128;
        System.out.println(x == y);       // false
         System.out.println(x.equals(y)); // true
    }
}

包装类判等时,若使用“==”来判断,在超过范围时就会出现false

因此以后包装类的判等都要用equals()完成。

发布了92 篇原创文章 · 获赞 3 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_41231928/article/details/102613561