Java의 래퍼 클래스는 원시 데이터 유형(예: int, double, char 등)을 객체로 래핑하는 데 사용되는 특수 클래스입니다. 래퍼 클래스의 기능은 일반 클래스 또는 메서드에 매개 변수로 전달, 개체의 메서드 호출, 컬렉션에 저장 등과 같이 기본 데이터 유형이 개체의 특성을 갖도록 만드는 것입니다. .
Java는 다음 표와 같이 각 기본 데이터 유형에 해당하는 래퍼 클래스를 제공합니다.
기본 데이터 유형 | 포장 |
---|---|
바이트 | 바이트 |
짧은 | 짧은 |
정수 | 정수 |
긴 | 긴 |
뜨다 | 뜨다 |
더블 | 더블 |
숯 | 성격 |
부울 | 부울 |
래퍼 클래스를 사용하려면 먼저 래퍼 클래스의 개체를 만들어야 합니다. 래퍼 클래스의 개체를 만드는 방법에는 두 가지가 있습니다. 하나는 생성자를 사용하는 것이고 다른 하나는 정적 메서드인 valueOf를 사용하는 것입니다. 예를 들어 다음은 Integer 객체를 만드는 두 가지 방법입니다.
// 使用构造方法
Integer i1 = new Integer(10); // 创建一个值为 10 的 Integer 对象
// 使用静态方法 valueOf
Integer i2 = Integer.valueOf(20); // 创建一个值为 20 的 Integer 对象
래퍼 클래스의 개체가 생성된 후 래퍼 클래스의 메서드를 사용하여 기본 데이터 유형을 조작할 수 있습니다. 래퍼 클래스는 다음 표와 같이 일반적으로 사용되는 몇 가지 메서드를 제공합니다.
메서드 이름 | 설명하다 |
---|---|
정수 값 | 객체에 해당하는 int 값을 반환합니다. |
이중값 | 객체에 해당하는 double 값을 반환합니다. |
charValue | 객체에 해당하는 char 값을 반환합니다. |
부울 값 | 객체에 해당하는 부울 값을 반환합니다. |
비교 대상 | 이 개체의 크기를 다른 개체와 비교하여 음수, 0 또는 양수를 반환합니다. |
같음 | 이 개체가 다른 개체와 같은지 여부를 결정합니다. |
이 객체의 문자열 표현을 반환합니다. | |
구문 분석XXX | 문자열을 parseInt, parseDouble 등과 같은 해당 기본 데이터 유형으로 구문 분석합니다. |
기본 데이터 유형 또는 문자열을 해당 래퍼 클래스 객체로 변환 |
예를 들어 다음은 래퍼 클래스 메서드를 사용하는 몇 가지 예입니다.
// 使用 intValue 方法
int i3 = i1.intValue(); // 将 i1 对象转换成 int 值
System.out.println(i3); // 输出 10
// 使用 compareTo 方法
int i4 = i1.compareTo(i2); // 比较 i1 和 i2 的大小
System.out.println(i4); // 输出 -1
// 使用 parseDouble 方法
double d1 = Double.parseDouble("3.14"); // 将字符串 "3.14" 解析成 double 值
System.out.println(d1); // 输出 3.14
// 使用 valueOf 方法
Boolean b1 = Boolean.valueOf(true); // 将 boolean 值 true 转换成 Boolean 对象
System.out.println(b1); // 输出 true
래퍼 클래스의 메서드를 사용하는 것 외에도 autoboxing 및 autounboxing을 사용하여 코드를 단순화할 수 있습니다. 자동 박싱은 기본 데이터 유형을 해당 패키징 개체로 자동 변환하는 것을 말하며, 자동 언박싱은 패키징 개체를 해당 기본 데이터 유형으로 자동 변환하는 것을 말합니다. 예를 들어 다음은 autoboxing 및 autounboxing을 사용하는 몇 가지 예입니다.
// 自动装箱
Integer i5 = 30; // 相当于 Integer i5 = Integer.valueOf(30);
Double d2 = 3.14; // 相当于 Double d2 = Double.valueOf(3.14);
// 自动拆箱
int i6 = i5; // 相当于 int i6 = i5.intValue();
double d3 = d2; // 相当于 double d3 = d2.doubleValue();
// 自动装箱和自动拆箱可以用在运算中