래핑 클래스(Wrapping Class)
Aug 19, 2024
래핑 클래스(Wrapping Class)란 기본 데이터 타입(Primitive Data Type)을 객체로 다루기 위해 사용하는 클래스를 의미합니다. 자바에서는 기본 데이터 타입과 대응되는 래핑 클래스가 제공되며, 이 클래스들은 기본 데이터 타입을 객체처럼 사용할 수 있도록 도와줍니다.
기본 데이터 타입과 래핑 클래스의 대응 관계
자바의 기본 데이터 타입과 그에 대응하는 래핑 클래스는 다음과 같습니다:
기본 데이터 타입 | 래핑 클래스 |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
char | Character |
byte | Byte |
short | Short |
래핑 클래스의 용도
래핑 클래스는 여러 가지 이유로 사용됩니다:
- 컬렉션에서 기본 타입 사용: 자바의 컬렉션 프레임워크(예:
List
,Set
,Map
)는 객체만을 다룰 수 있기 때문에, 기본 데이터 타입을 컬렉션에 저장하기 위해서는 래핑 클래스를 사용해야 합니다.
List<Integer> numbers = new ArrayList<>();
numbers.add(10); // int 기본 타입이 Integer 객체로 자동 변환
- 객체로 취급해야 할 필요가 있을 때: 예를 들어, 기본 타입을 메소드의 파라미터로 넘기거나, 객체로 저장하고 조작해야 할 때 래핑 클래스를 사용할 수 있습니다.
- 메소드에서 제공하는 유틸리티 기능: 래핑 클래스는 각종 유틸리티 메소드를 제공합니다. 예를 들어,
Integer
클래스에는 문자열을 정수로 변환하는Integer.parseInt(String s)
같은 메소드가 있습니다.
- 오토박싱(Auto-boxing)과 언박싱(Unboxing): 자바에서는 기본 데이터 타입이 자동으로 래핑 클래스로 변환되는 오토박싱(auto-boxing)과, 래핑 클래스 객체가 기본 데이터 타입으로 변환되는 언박싱(unboxing)을 지원합니다.
Integer num = 5; // int 타입 5가 자동으로 Integer 객체로 변환 (오토박싱)
int n = num; // Integer 객체가 다시 int 타입으로 변환 (언박싱)
예시 코드
public class WrapperClassExample {
public static void main(String[] args) {
int num = 10;
// 기본 타입을 래핑 클래스 객체로 변환 (오토박싱)
Integer wrappedNum = num;
System.out.println("Wrapped Number: " + wrappedNum);
// 래핑 클래스 객체를 기본 타입으로 변환 (언박싱)
int unwrappedNum = wrappedNum;
System.out.println("Unwrapped Number: " + unwrappedNum);
}
}
이 코드에서
num
은 기본 데이터 타입인 int
이고, wrappedNum
은 Integer
래핑 클래스 객체입니다. wrappedNum
에서 다시 기본 데이터 타입으로 변환되는 과정이 언박싱입니다.결론적으로, 래핑 클래스는 기본 데이터 타입을 객체로 다뤄야 하는 상황에서 매우 유용하게 사용됩니다. 자바에서는 이러한 변환이 자동으로 이루어지기 때문에 프로그래머가 쉽게 기본 타입과 객체를 넘나들 수 있습니다.
Share article