기본 자료형 데이터(primitive type)를 객체로 바꿔주는 클래스래퍼클래스(Wrapper Class)라고 한다.

여기서 박싱(Boxing)언박싱(UnBoxing)이라는 개념이 나오는데

 

박싱(Boxing)기본 자료형(Primitive type)래퍼 클래스(Wrapper class)로 포장하는 것을 말하고

언박싱(UnBoxing)래퍼 클래스(Wrapper class)기본 자료형(Primitive type)으로 포장한 것을 다시 꺼내는 역할을 한다.

그렇다면 박싱과 언박싱을 사용하는 이유는 무엇일까?

 

이유는 제네릭이나 자료구조, 매개변수 등 primitive type이 아닌 referenct type을 사용하는 경우가 많기 때문이다.

특히 제네릭에서는 primitive type은 받지 않기 때문에 Wrapper클래스를 이용하여 제네릭을 사용해야 한다.

public class WrapperEx {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Integer num1 = new Integer(7); //박싱    기본자료형 --> Wrapper클래스     
		Integer num2 = new Integer(3); //박싱    기본자료형 --> Wrapper클래스 
	
		int int1 = num1.intValue();//언박싱    Wrapper클래스 ---> 기본 자료형
		int int2 = num2.intValue();//언박싱    Wrapper클래스 ---> 기본 자료형
	
		Integer result1 = num1+num2;  //10
		Integer result2 = int1-int2;  //4
		int result3 = num1 * int2;    //21
		
		
		System.out.println(result1);
		System.out.println(result2);
		System.out.println(result3);
	}

}

Java 5 버전부터 오토박싱과 오토언박싱을 지원하는데

명시적으로 표현해주지 않아도 오토 박싱과 오토 언박싱을 지원한다. 

'JAVA' 카테고리의 다른 글

[JAVA] 콜렉션 (Collection / 제네릭(Generic)  (0) 2020.09.22
[JAVA] 콜렉션-Collection  (0) 2020.09.22
[JAVA] GUI 스크롤바(RGB)  (0) 2020.09.20
[JAVA] GUI(AWT)  (0) 2020.09.16
[JAVA] 추상클래스  (0) 2020.09.14

+ Recent posts