티스토리 뷰
Wrapper 클래스
자바에는 다음과 같은 기본 자료형들이 있습니다. boolean, char, byte, short, int, long, float, double
이런 기본 자료형들을 인스턴스로 표현하기 위해 Wrapper 클래스가 존재합니다.

기본 자료형을 Wrapper클래스로 감싸는 행위를 Boxing,
Wrapper 클래스에서 기본 자료형 값을 꺼내오는 행위를 UnBoxing 이라고 합니다.
Integer int = new Integer(7); // Boxing
Double double = new Double(4.5); // Boxing
Boolean bool = new Boolean(false); // Boxing
오토 박싱(Auto Boxing) & 오토 언 박싱(Auto UnBoxing)
자바 5부터 Wrapper 클래스와 기본 자료형 간의 박싱, 언박싱을 자동으로 처리해줍니다.
다음 예제는 박싱과 언박싱, 오토 박싱과 오토 언박싱의 차이를 보여주는 예제입니다.
public class Application {
public static void main(String[] args) {
Integer integerNum = new Integer(17); // 박싱
int intNum = integerNum.intValue(); // 언박싱
Character character = 'X'; // Character character = new Character('X'); 오토박싱
char ch = character; // character.charValue(); 오토 언박싱
}
}
오토 박싱을 이용하면, new 키워드를 사용하지 않고도 자동으로 Wrapper클래스의 인스턴스를 생성할 수 있습니다.
오토 언박싱을 이용하면, 언박싱 메소드를 사용하지 않고도, Wrapper 클래스에서 기본 자료형 값을 꺼내올 수 있습니다.
Wrapper 클래스에는 언박싱을 위한 메소드(intvalue(), charValue() ..) 가 포함되어 있습니다.
Wrapper 클래스 사용 예시
1. Wrapper 클래스는 데이터 타입을 오브젝트(Object)로 변환할 수 있습니다.
public class Application {
public static void main(String[] args) {
wrapperOutput(new Integer(5));
}
public static void wrapperOutput(Object object) {
System.out.println(object); // 5 출력
}
}
기본 자료형은 Object 타입의 매개변수로 전달할 수 없습니다.
하지만, Wrapper 클래스의 인스턴스를 매개변수로 전달하면 자료형에 상관없이 메서드를 재사용할 수 있습니다.
public class Application {
public static void main(String[] args) {
wrapperOutput(5);
}
public static void wrapperOutput(Object object) {
System.out.println(object); // 5 출력
}
}
자바 5에서부터 오토박싱과 오토언박싱을 진행하므로 위와 같이 인자를 전달해도 됩니다.
'Language' 카테고리의 다른 글
| [Java] MVC 패턴 (0) | 2022.11.14 |
|---|
