Java 包装类
引入:
java是面向对象的编程语言,但它也包含了8种基本数据类型,这八种基本数据类型不支持面向对象的编程机制,不具备“对象”的特性:没有成员变量,方法。
在有些时候,基本数据类型会有一些制约,例如所有的引用类型都继承了Object类,都可以当成Object类型变量使用,如果某个方法需要Object类型的参数,但实际需要的值是1,2,3等int类型数值,就比较难处理。所以,Java提供了包装类(Wrapper Class)的概念,为8种基本类型定义了相应的引用类型。
基本数据类型及其对应的包装类
基本数据类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
除int和char外,其他的数据类型对应的包装类都是将首字母大写即可。
基本数据类型和包装类对象之间的转换
JDK1.5之后提供了自动装箱(Autoboxing)和自动拆箱(AutoUnboxing)的功能。自动装箱,就是把一个基本类型变量直接赋值给对应的包装类变量,或者赋值给Object变量(Object是所有类的父类,子类对象可以直接赋值给父类变量 java的向上自动转型机制特性),自动拆箱机制则与之相反,允许直接把包装类对象直接赋值给与其对应的基本类型变量。
注:Object对象赋给其他对象或类型需要进行强制转换
程序示范
public class AutoBoxingUnAutoboxing {
public static void main(String[] args) {
Integer inObj = 1; //int ----> Integer 自动装箱
Object a = 'c'; //char----> Object 向上自动转型
int i = inObj; //inObj---> i 自动拆箱
}
}