包装类
- 包装类的主要功能:针对于基本数据类型的对象转换而实现的
- 包装类的两种类型:
1.对象型包装类(Object直接子类):Boolean,Character
2.数值型包装类(Number直接子类):Byte,Short,Integer,Long,Float,Double
- Number类是抽象类,该类定义有如下的方法:
方法名称 | 描述 |
---|---|
public byte byteValue() | 从包装类中获取byte数据 |
public short shortValue() | 从包装类中获取short数据 |
public abstract long longValue() | 从包装类中获取long数据 |
public abstract int intValue() | 从包装类中获取int数据 |
public abstract float floatValue() | 从包装类中获取float数据 |
public abstract double doubleValue() | 从包装类中获取double数据 |
拆箱与装箱操作
- 数据装箱:将基本数据保存在包装类之中,一般可利用构造方法完成
1.Integer类:public Integer(int value)
2.Double类:public Double(double value)
3.Blooean类:public Boolean(boolean value)
- 数据拆箱:从包装类中获取基本数据类型
1.数值型包装类已经由Number类定义了拆箱的方法了
2.Boolean型:public boolean booleanValue()
范例:
public class BaoZhuangLei {
public static void main(String args[]) {
Integer obj = new Integer(10); //装箱
int num = obj.intValue(); //拆箱
System.out.println(num*num);
}
}
自动装箱与拆箱
- 支持参与数学运算
public class BaoZhuangLei {
public static void main(String args[]) {
Integer obj = 10; //自动装箱,此时不在关心构造方法
int num = obj; //自动拆箱
obj++; //包装类对象可以直接参与数学运算
System.out.println(num*obj);
}
}
- 自动装箱最大的好处是实现object接受基本数据类型的操作
//object接受小数
public class BaoZhuangLei {
public static void main(String args[]) {
Object obj = 10.2; //double自动装箱为Double,向上转型为object
double num = (Double)obj; //向下转型为包装类,在自动拆箱
System.out.println(num*2);
}
}
- 包装类判断相等时使用equals比较
public class Demo3 {
public static void main(String[] args) {
Integer x = 127;
Integer y = 127;
Integer a = 128;
Integer b = 128;
System.out.println(x == y);
System.out.println(a == b);
System.out.println(a.equals(b));
}
}