Java에서는 박싱과 언박싱 그리고 자동으로 시행해주는 오토 박싱, 오토 언박싱이 존재한다.
관련 내용은 아래와 같다.
개념 : 기본형 자료형을 객체화 시켜주는 것.
사용법 : Wrapper 클래스를 활용하여 객체화 시킴
int a = 10;
Integer Obja = new Integer(a); // 박싱
System.out.println(a); // 10 (정수)
System.out.println(Obja); // 10 (객체 10)
int a = 10;
Integer Obja = new Integer(10); // 박싱
System.out.println(a); // 10 (정수)
System.out.println(Obja); // 10 (객체 10)
int b = Obja.intValue(); // 10 (객체 → 정수)
System.out.println(b); // 10
개념 : 자동으로 박싱 / 언박싱을 해주는 것
사용법 : 자동으로 변환
int a = 10;
Integer Obja = a; // 오토 언박싱으로 new Integer(a) 이거 대신 가능
System.out.println(a); // 10 (정수)
System.out.println(Obja); // 10 (객체 10) 오토 언박싱
int b = Obja; // 오토 박싱으로 Obja.intValue() 이거 대신 사용
System.out.println(b+1); // 11, 정수형으로 변환되어 기본형 자료형 연산 가능
코드의 간결화를 위함
메소드 또는 클래스를 생성하고 매개변수로 다양한 자료형을 받는 코드가 있을 시, 상위 객체로 받는 메소드 또는 생성자를 구현하면 코드가 훨씬 간결해짐
예시) int형을 받는 메소드, double형 받는 메소드, boolean형을 받는 메소드 → Wrapper 클래스로 객체화 시키면 매개변수로 Object형으로 받는 메소드 하나만 구현이 가능
void 예시1(int a){
System.out.println("예시입니다.");
}
void 예시2(String s){
System.out.println("예시입니다.");
}
void 예시3(Object o) {
System.out.println("예시입니다.");
}
매개변수로 최상위 객체인 Object를 받으면, 객체화 된 기본 자료형(박싱)을 받을 수 있는 하나의 메소드로 구현 가능