Java 包装类

Java 包装类

Java 使用基本类型(如int、double、char和boolean)及类和对象来表示数据,要管理的数据仅有两类,即基本类型值及对象引用。但当你想用处理对象的一样的方式来处理基本类型的数据时,必须将基本类型值 “包装” 为一个对象。为此,Java 提供了包装类。
包装(wrapper)类 表示一种特殊的基本类型。例如,Integer 类表示一个普通的整型量。由Integer类创建的对象只保存一个int值。包装类的构造方法接受一个基本类型的值,并保存它。

Integer ageObj = new Integer(40);

执行后,ageObj 对象就将整数 40 看作一个对象。它可以用在程序中需要对象而不是需要基本类型值的地方。
对于 Java 中的每种基本数据类型,在 Java 类库中都有一个对应的包装类。所有的包装类都定义在 java.lang 包中。

基本数据类型 包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
void Void

注意:对于void类型的包装类是 Void。但和其他的包装类不一样的是,Void类不能被实例化。它只表示 void 引用的概念。

包装类提供了几种方法,可以对相应的基本数据类型的值进行操作。 下面列举Integer类中的几个方法。其他的包装类有类似的方法。

  • Intger(int value):构造方法,创建新的Integer对象,用来保存 value 的值。
  • byte byteValue()、double doubleValue()、float floatValue()、int intValue()、long longValue():按对应的基本数据类型返回Integer对象的值。
  • static int parseInt(String str):按 int 类型返回存储在指定字符串 str 中的值;
  • static String toBinaryString(int num)、static String toHexString(int num)、static String toOctalString(int num):将指定的整型值在对应的进制下按字符串形式返回。

Java 包装类中常常含有常量,如Integer.MIN_VALUE 和 MAX_VALUE,它们分别保存 int 的最大值和最小值。其他类中也有相似的常量。
自动将 基本数据类型 转为 对应的包装类 的过程称为 自动装箱(Autoboxing)。例如:

Integer obj1;
int num1 = 69;
obj1 = num1;  // 自动创建 Integer 对象

逆向的转换称为 拆箱(unboxing),需要时也是自动完成的。例如:

Integer obj2 = new Integer(69);
int num2;
num2 = obj2;  // 自动解析出 int 型

一般来说,基本数据类型与对象之间的赋值是不相容的。自动装箱仅能用在基本数据类型与对应的包装类之间。

posted @ 2020-10-24 17:55  John_yan15  阅读(339)  评论(0编辑  收藏  举报