Java 简明教程

Java - Wrapper Classes

Why Java Wrapper Classes Required?

通常情况下,在使用数字时,我们会使用 primitive data types ,例如 byte、int、long、double 等。

Example

int i = 5000;
float gpa = 13.65f;
double mask = 125;

然而,在开发中,我们会遇到需要使用 objects 而非基本数据类型的情况。为了实现此操作,Java 提供 wrapper classes

Java Wrapper Classes

  1. 包装类是其对象将基本数据类型包装在内部的类。

  2. 在 java.lang 包中,java 为每种基本数据类型提供了一个单独的类,即 Byte、Character、Double、Integer、Float、Long、Short。

  3. 在实例化时,这些类直接接受一个基本数据类型,或以字符串的格式。

  4. 包装类提供方法来将基本数据类型转换为字符串对象,并将其与其他对象进行比较,等等。

  5. 使用包装类,还可以将基本数据类型添加到各种集合对象,如 ArrayList、HashMap,等等。还可以使用包装类在网络上传递基本值。

所有包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类 Number 的子类。

number classes

Object of Java Wrapper Class

包装类对象包含或包装其相应的基本数据类型。将基本数据类型转换为对象称为 boxing,这由编译器负责。因此,在使用包装类时只需要将基本数据类型的值传递给包装类的构造函数。

而包装器对象将被转换回基本数据类型,此过程称为拆箱。Number 类属于 java.lang 包。

Creating Java Wrapper Class Objects

在 Java 中,要创建一个包装器对象,必须使用包装器类,而非基本数据类型。

如果要打印这些对象的数值,直接打印对象即可。

查看以下语法:

wrapper_class object_name = value;

Example of Java Wrapper Class

以下是装箱和拆箱的一个示例 −

在此示例中,我们展示了使用包装类操作基元及其运算。在第一个语句中,我们为整数对象 x 分配了一个 int,此过程称为装箱。在第二个语句中,我们为 x 添加 10,这需要将 x 拆箱为 int 并执行加法操作,并将结果分配回变量 x 并打印。

public class Test {

   public static void main(String args[]) {
      Integer x = 5; // boxes int to an Integer object
      x =  x + 10;   // unboxes the Integer to a int
      System.out.println(x);
   }
}

Output

15

当为 x 分配整数值时,编译器将此整数装箱,这是因为 x 是整数对象。稍后,对 x 进行拆箱以便将其作为整数进行加法操作。

List of Java Wrapper Classes

以下是 Number 类的所有子类的包装器类列表 −

Sr.No.

Class & Description

1

Boolean Java 布尔类将原始类型布尔值包装到对象中。

2

Byte Java 字节类将原始类型字节值包装到对象中。

3

Character Java 字符类将原始类型字符值包装到对象中。

4

Double Java 双精度类将原始类型双精度值包装到对象中。

5

Float Java 浮点数类将原始类型浮点值包装到对象中。

6

Integer Java 浮点数类将原始类型浮点值包装到对象中。

7

Long Java 长整数类将原始类型长整数值包装到对象中。

8

Short Java 短整数类将原始类型短整数值包装到对象中。