一、为什么需要包装类
包装类的主要功能是针对基本数据类型的对象转换而实现的。若想把基本数据类型以类或者对象的形式进行处理,就需要转换成包装类。
二、有哪些包装类
基本数据类型有八种,对应的包装类也有八种,对应关系如下:
概括的说,包装类分为两种:
- 对象型包装类(Object直接子类):Boolean、Character
- 数值型包装类(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()完成。