包装(
Wrapper
)类,也叫封装类。
包装类不止一个,它是
Java
针对
8
种基本数据类型提供的
类类型
,它们对基本数据类型做了包装。
基本类型:byte、 short、 int、 long 、float 、double、 char 、boolean
包装类:Byte、 Short 、Integer、 Long 、Float、 Double、 Character、 Boolean
除了
int
和
char
的包装类命名比较特殊(单词的全写)外,其他基本数据类型的 包装类直接是首字
母大写。
在面向对象编程里,对象是核心,讲究万事万物皆对象。通过类创建出来对象之后,可以访问对象
的方 法、对象的属性、方法可以重载、可以重写、类还有封装、继承、多态等特性,相比基本数
据类型,类 更加强大,基本数据类型的功能显得相对单薄。
对基本数据类型的封装,就是我们所谓的包装,对应的类就是包装类。
可以把对基本数据类型的操作封装成一个一个方法,比如:在
Integer
类中,可以封装一个
int
转
byte
的 方法,封装一个int
转
short
的方法,求
2
个数的最大值,
int
转字符串等等方法,也可以将
int
的最
大值、 最小值定义成静态常量。
包装类
包装类实际上是扩展了基本数据类型的功能,对基本数据类型进行了 功能上的封装。
由于系统已经定义好了
8
种基本数据类型的包装类,我们无需自己定义,直接使用即可。
基本类型:byte、 short、 int、 long 、float 、double、 char 、boolean
包装类:Byte、 Short 、Integer、 Long 、Float、 Double、 Character、 Boolean
父类:
byte、 short、 int、 long 、float 、double 的父类都是 Number。
Byte、 Short 、Integer、 Long 、Float、 Double 的父类是 Number。
char 、boolean
的父类是 object。
Character、 Boolean 的父类是 object。
抽象类:抽象类不能创建对象。
抽象类中往往会定义抽象方法,抽象方法由子类实现。
Number
类
Number
类是
Byte
、
Short
、
Integer
、
Long
、
Float
、
Double
的父类。它是一个抽象类,内部定义了
一 些抽象方法,这些抽象方法由子类负责实现。
Byte
类
Byte
类
byte
的包装类,是对
byte
的封装。
Byte
类继承于
Number
类,因此要实现
Number
类中所有的
抽 象方法。
Short
类
Short
类
short
的包装类,是对
short
的封装。
Short
类继承于
Number
类,因此要实现
Number
类中所
有的抽象方法。
Integer
类
Integer
类
int
的包装类,是对
int
的封装。
Integer
类继承于
Number
类,因此要实现
Number
类中所有
的抽象方法。
Long
类
Long
类
long
的包装类,是对
long
的封装。
Long
类继承于
Number
类,因此要实现
Number
类中所有
的抽象方法。
Float
类
Float
类
float
的包装类,是对
float
的封装。
Float
类继承于
Number
类,因此要实现
Number
类中所有
的抽象方法。
Double
类
Double
类
double
的包装类,是对
double
的封装。
Double
类继承于
Number
类,因此要实现
Number
类 中所有的抽象方法。
Character
类
Character
类
char
的包装类,是对
char
的封装。
Character
类继承于
Object
类。
Boolean
类
Boolean
类
boolean
的包装类,是对
boolean
的封装。
Boolean
类继承于
Object
类。
包装类与基本数据类型之间的转换
案例:
将基本数据类型转换为对象类型(包装类)。
public static void main(String[] args) {
int num = 100; //基本数据类型转换成包装类
Integer i = new Integer(num); method(i);
}
public static void method(Object obj) {
System.out.println(obj);
}
}
将对象类型(包装类)转换为基本数据类型。
public static void main(String[] args) {
Integer x = new Integer(100); //包装类转成基本数据类型
int xx = x.intValue();
int y = 200;
int z = xx + y;
System.out.println(z);
}
}
基本数据类型转包装类
构造方法() //基本数据类型转包装类
static 包装类 valueOf(基本数据类型) //基本数据类型转包装类
包装类转基本数据类型
public 基本数据类型 xxxValue() //包装类转换为基本数据类型
自动装箱和自动拆箱
包装类和基本数据类型的转换,由系统自动进行
,我们无需编写任何转换代码。
自动装箱:基本数据类型 转换到 包装类由系统自动进行。
自动拆箱:包装类 转换到 基本数据类型由系统自动进行。
基本数据类型转包装类用的比较多(自动装箱)。