通常,当我们处理数字时,我们会使用如 byte
、int
、long
、double
等原始数据类型。
示例
int i = 5000;
float gpa = 13.65f;
double mask = 125;
然而,在开发过程中,我们会遇到需要使用对象而不是原始数据类型的情况。为了实现这一点,Java 提供了包装类。
Java 包装类
包装类是那些在其内部封装原始数据类型的类。
在 java.lang
包中,Java 为每个原始数据类型提供了一个单独的类,即 Byte
、Character
、Double
、Integer
、Float
、Long
和 Short
。
在实例化时,这些类可以直接接受原始数据类型,或者以字符串的形式接受。
包装类提供了方法来将内部的原始数据类型转换为字符串对象,并且可以比较它们与其他对象等。
使用包装类,您还可以将原始数据类型添加到各种集合对象中,如 ArrayList
、HashMap
等。您也可以使用包装类在网络上传递原始值。
所有包装类(Integer
、Long
、Byte
、Double
、Float
、Short
)都是抽象类 Number
的子类。
Java 包装类的对象
包装类的对象包含了或封装了其相应的原始数据类型。将原始数据类型转换成对象的过程称为装箱,这由编译器处理。因此,在使用包装类时,您只需要将原始数据类型的值传递给包装类的构造函数。
包装对象将会被重新转换回原始数据类型,这一过程称为拆箱。Number
类是 java.lang
包的一部分。
创建 Java 包装类对象
在 Java 中,要创建一个包装对象,您必须使用包装类而不是原始数据类型。
如果您想打印这些对象的值,只需打印对象即可。
考虑以下语法:
包装类 对象名 = 值;
Java 包装类示例
以下是一个装箱和拆箱的示例:
在本例中,我们展示了使用包装类进行原始类型及其操作的用法。在第一句中,我们将一个 int
赋值给了 Integer
对象 x
,这被称为装箱。在第二句中,我们向 x
添加 10
,这要求 x
被拆箱成 int
并进行加法运算,结果再赋值回变量 x
并打印。
public class Test {
public static void main(String args[]) {
Integer x = 5;
x = x + 10;
System.out.println(x);
}
}
输出:
15
当 x
被赋予一个整数值时,编译器会将整数装箱,因为 x
是 integer
对象。之后,x
被拆箱以便可以作为一个整数相加。
Java 包装类列表
以下是 Number
类的所有子类的包装类列表:
序号 |
类 |
描述 |
1 |
Boolean |
Java Boolean 类将原始类型 boolean 的值封装在一个对象中。 |
2 |
Byte |
Java Byte 类将原始类型 byte 的值封装在一个对象中。 |
3 |
Character |
Java Character 类将原始类型 char 的值封装在一个对象中。 |
4 |
Double |
Java Double 类将原始类型 double 的值封装在一个对象中。 |
5 |
Float |
Java Float 类将原始类型 float 的值封装在一个对象中。 |
6 |
Integer |
Java Integer 类将原始类型 int 的值封装在一个对象中。 |
7 |
Long |
Java Long 类将原始类型 long 的值封装在一个对象中。 |
8 |
Short |
Java Short 类将原始类型 short 的值封装在一个对象中。 |
注意:表格中的第六行描述有误,应为 Integer
类将原始类型 int
的值封装在一个对象中,而非 Float
类。