Wrapper Class

DDUBINI·2020년 12월 6일
0

Wrapper Class란?

자바의 자료형은 기본타입과 참조타입으로 나누어지는데 기본 자료타입을 객체로 다루기 위해서 사용하는 클래스들을 래퍼클래스라고 한다.
자바는 모든 기본타입(primitive type)은 값을 갖는 객체를 생성할 수 있습니다. 이런 객체를 포장 객체라고도 하는데 그 이유는 기본 타입의 값을 내부에 두고 포장하기 때문이다. 래퍼 클래스로 감싸고 있는 기본 타입 값은 외부에서 변경할 수 없다. 만약 값을 변경하고 싶다면 새로운 포장 객체를 만들어야 한다.


래퍼 클래스는 java.lang 패키지에 포함되어 있다. char타입과 int타입이 각각 Character과 Integer의 래퍼 클래스를 가지고 있고 나머지는 기본 타입의 첫 글자를 대문자로 바꾼 이름을 가지고 있다.


모든 래퍼클래스의 부모는 Object이고 내부적으로 숫자를 다루는 래퍼클래스의 부모 클래스는 Number 클래스 이다. 모든 래퍼 클래스는 최종 클래스로 정의됩니다.
기본 타입의 값을 포장 객체로 만드는 과정을 박싱(boxing)이라고 하고 반대로 포장 객체에서 기본타입의 값을 얻어내는 과정을 언박싱(unboxing)이라고 한다.

자동 박싱, 자동 언박싱

기본타입 값을 직접 박싱, 언박싱하지 않아도 자동적으로 박싱과 언박싱이 일어나는 경우가 있습니다. 자동 박싱의 포장 클래스 타입에 기본값이 대입될 경우에 발생합니다. 예를 들어 int타입의 값을 Integer클래스 변수에 대입하면 자동 박싱이 일어나 힙 영역에 Integer객체가 생성됩니다.

객체 비교

래퍼 객체는 == 연산자를 사용할 수 없다.
== 연산자는 참조 주소를 비교하는 것이기 때문이다.
객체끼리 비교하려면 그 내부의 값을 얻어 걔네끼리 비교해야하기 때문에 equals를 사용해야한다.
하지만 래퍼 클래스와 기본자료형의 비교는 ==와 equals 모두 가능하다.
그 이유는 컴파일러가 자동으로 오토박싱과 오토 언박싱을 해주기 때문이다.

profile
ㅎㅇㅎㅇ

0개의 댓글