Java 简明教程
Java - Wrapper Classes
Why Java Wrapper Classes Required?
通常情况下,在使用数字时,我们会使用 primitive data types ,例如 byte、int、long、double 等。
Normally, when we work with Numbers, we use primitive data types such as byte, int, long, double, etc.
Example
int i = 5000;
float gpa = 13.65f;
double mask = 125;
然而,在开发中,我们会遇到需要使用 objects 而非基本数据类型的情况。为了实现此操作,Java 提供 wrapper classes 。
However, in development, we come across situations where we need to use objects instead of primitive data types. In order to achieve this, Java provides wrapper classes.
Java Wrapper Classes
-
Wrapper classes are those whose objects wraps a primitive data type within them.
-
In the java.lang package java provides a separate class for each of the primitive data types namely Byte, Character, Double, Integer, Float, Long, Short.
-
At the time of instantiation, these classes accept a primitive datatype directly, or in the form of String.
-
Wrapper classes provide methods to, convert primitive datatypes within them to String objects and, to compare them with other objects etc.
-
Using wrapper classes, you can also add primitive datatypes to various Collection objects such as ArrayList, HashMap etc. You can also pass primitive values over a network using wrapper classes.
所有包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类 Number 的子类。
All the wrapper classes (Integer, Long, Byte, Double, Float, Short) are subclasses of the abstract class Number.
Object of Java Wrapper Class
包装类对象包含或包装其相应的基本数据类型。将基本数据类型转换为对象称为 boxing,这由编译器负责。因此,在使用包装类时只需要将基本数据类型的值传递给包装类的构造函数。
The object of the wrapper class contains or wraps its respective primitive data type. Converting primitive data types into object is called boxing, and this is taken care by the compiler. Therefore, while using a wrapper class you just need to pass the value of the primitive data type to the constructor of the Wrapper class.
而包装器对象将被转换回基本数据类型,此过程称为拆箱。Number 类属于 java.lang 包。
And the Wrapper object will be converted back to a primitive data type, and this process is called unboxing. The Number class is part of the java.lang package.
Creating Java Wrapper Class Objects
在 Java 中,要创建一个包装器对象,必须使用包装器类,而非基本数据类型。
In Java, to create a wrapper object, you have to use the wrapper class instead of the primitive data type.
如果要打印这些对象的数值,直接打印对象即可。
If you want to print the values of these objects, just print the object.
查看以下语法:
Consider the below syntax:
wrapper_class object_name = value;
Example of Java Wrapper Class
以下是装箱和拆箱的一个示例 −
Following is an example of boxing and unboxing −
在此示例中,我们展示了使用包装类操作基元及其运算。在第一个语句中,我们为整数对象 x 分配了一个 int,此过程称为装箱。在第二个语句中,我们为 x 添加 10,这需要将 x 拆箱为 int 并执行加法操作,并将结果分配回变量 x 并打印。
In this example, we’ve showcase use of primitives and their operations using a wrapper class. In first statement we’ve assigned an int to an Integer object x which is termed as boxing. In second statment, we’re adding 10 to x which requires x to be unboxed as int and addition is performed and result is assigned back to the variable x and printed.
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);
}
}
List of Java Wrapper Classes
以下是 Number 类的所有子类的包装器类列表 −
Following is the list of the wrapper classes that all the subclasses of the Number class −
Sr.No. |
Class & Description |
1 |
Boolean The Java Boolean class wraps a value of the primitive type boolean in an object. |
2 |
Byte The Java Byte class wraps a value of the primitive type byte in an object. |
3 |
Character The Java Character class wraps a value of the primitive type char in an object. |
4 |
Double The Java Double class wraps a value of the primitive type double in an object. |
5 |
Float The Java Float class wraps a value of the primitive type float in an object. |
6 |
Integer The Java Float class wraps a value of the primitive type float in an object. |
7 |
Long The Java Long class wraps a value of the primitive type long in an object. |
8 |
Short The Java Short class wraps a value of the primitive type short in an object. |