반응형

 

 

1. 래퍼 클래스(Wrapper Class)

기본 타입의 데이터를 객체로 취급해야 하는 경우, 메소드의 인수로 객체 타입이 요구될 때 기본 타입의 데이터를 그대로 사용할 수 없다. 이때 기본 타입의 데이터를 먼저 객체로 변환해야한다.

 

즉, 기본 타입에 해당하는 데이터를 객체로 변환해 주는 클래스를 래퍼 클래스(Wrapper class)라고 하며, 래퍼 클래스는 각각의 타입에 해당하는 데이터를 인수로 전달받아, 해당 값을 가지는 객체로 만들어 준다.

 

 

1-1. 래퍼 클래스 예시

List<String> list = new ArrayList<>();

 

제네릭 타입에는 원하는 자료형을 지정할 수 있는데 기본 자료형인 원시형은 넣지 못한다. 제네릭 타입에 넣기 위해서는 원시형(기본형)을 담아낼 수 있는 클래스를 넣어야 한다. 즉, 원시형(Primitive Type)을 객체화한 것을 넣어야 하는데 이를 래퍼 클래스(Wrapper Class)라고 합니다.

 

 

1-2. 래퍼 클래스의 종류

래퍼 클래스는 자료형을 객체화한 것이다.

Boolean
Character
Double
Float
Integer
Long
Short
Byte

 

 

1-3. 박싱과 언박싱

래퍼 클래스(Wrapper class)는 산술 연산을 위해 정의된 클래스가 아니므로 인스턴스에 저장된 값을 변경할 수 없다. 단지, 값을 참조하기 위해 새로운 인스턴스를 생성하고, 생성된 인스턴스의 값만을 참조할 수 있다.

 

기본 타입의 데이터를 래퍼 클래스의 인스턴스로 변환하는 과정을 박싱(Boxing)이라고 하며, 래퍼 클래스의 인스턴스에 저장된 값을 다시 기본 타입의 데이터로 꺼내는 과정을 언박싱(UnBoxing)이라고 한다.

 

 

 

2. 박싱(Boxing)

 

박싱(Boxing)은 원시형(Primitive Type)을 래퍼 클래스로 바꾸는 것을 의미한다. 

// 박싱
Integer x = new Integer(1);

 

오토 박싱(Auto-Boxing)은 new 키워드를 사용하지 않아도 컴파일러가 자동으로 처리해준다.

// 오토 박싱
Integer x = 1; // Integer x = new Integer(1);

 

 

 

 

3. 언박싱(UnBoxing)

 

언박싱(UnBoxing)은 래퍼 클래스를 원시형(Primitive Type)으로 바꾸는 것을 의미한다.

Integer x = new Integer(1); // 박싱

//Value 앞에 기본 자료형을 붙여주면 언박싱이 가능하다
int y = x.intValue(); // 언박싱

 

오토 언박싱(Auto-UnBoxing)은 오토 박싱과 마찬가지로 컴파일러가 자동으로 처리해준다.

Integer x = new Integer(1); // 박싱
int y = x; // int y = x.intValue();

 

 

 

 

 

# 참고사이트

http://tcpschool.com/java/java_api_wrapper

 

 

 

 

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기