본문 바로가기
Java/Java

API) 기본형을 객체화 해주는 클래스 Wrapper

by 박채니 2022. 3. 25.
SMALL

안녕하세요, 코린이의 코딩 학습기 채니 입니다.

 

개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.


☞ Wrapper

- 기본형을 객체화해주는 클래스

- 기본형을 감싼 참조형 클래스로, 기본형이 아닌 참조형으로만 처리가 가능한 경우 사용

- 기본형은 할 수 없는 null 표현 가능!

Byte b = 1;
Short s = 2;
Integer i = 3;
Long l = 4L;
		
Float f = 5.5f;
Double d = 6.6;
		
Boolean bool = true;
		
Character ch = '안';

boxing (기본형 → wrapper)

int n = 10;
Integer nNum = n;

대입 연산자를 사용할 시, 반드시 양 쪽의 자료형이 동일해야 합니다.

위와 같은 경우는 Integer 타입의 nNum에 int 타입인 10을 대입하여 양 쪽의 자료형이 상이합니다.

 

하지만 컴파일 오류는 발생하지 않습니다.

그 이유는 boxing처리를 자동으로 해주기 때문이죠.

//Integer nNum = n;
Integer nNum = Integer.valueOf(n)

Integer nNum = Integer.valueOf(n)

int 타입의 n을 Integer 타입으로 자동 처리 해주어 boxing 해주기 때문에 오류 발생이 없습니다.


unboxing (wrapper → 기본형)

Integer nNum = 10;
int m = nNum;

마찬가지로 int 타입의 m에 Integer 타입의 nNum을 대입하여 양 쪽의 자료형이 상이합니다.

하지만 이 경우에도 자동으로 unboxing 처리를 해주기 때문에 오류 발생이 없습니다.

//int m = nNum;		
int m = nNum.intValue();

int m = nNum.intValue();

Integer 타입의 nNum을 int 타입으로 자동 처리 해주어 unboxing 해주기 때문에 오류 발생이 없습니다.

 

대입 뿐만 아니라 연산 처리에도 동일하게 자동 처리해줍니다.

int x = 10;
Integer y = 20;
System.out.println(x+y);
// x + y.intValue();

@콘솔출력값
30

 

LIST