java - 래퍼클래스(Wrapper Class)

yunzivv·2025년 3월 20일

JAVA 기초

목록 보기
23/23

래퍼클래스


자바를 배우면서 처음으로 Integer를 사용해봤다. c++ 배울 때도, python 배울 때도 항상 int만 사용해왔었는데, 자바에서 일반 변수는 int로 정의하고 ArrayList는 Integer로 정의했다. 두 차이가 뭔지 정리해본다.

intInteger 둘 다 정수를 나타내는 자료형이다.

자료형은 기본 타입참조 타입으로 나뉘어진다. 기본 타입은 int, char, boolean 등 8개의 기본 타입이 있고, 참조 타입은 ArrayList, class 등 기본 타입을 제외한 나머지다.

코드를 구현할 때 ArrayList는 다양한 타입을 한 번에 담을 수 있지만 정수형만 담을 수 있는 리스트가 필요하기도 하다. (기본 타입형을 객체로 표현하고 싶은 경우) 이럴 때, 기본 타입을 객체로 다루기 위해서 래퍼 클래스를 사용한다.

자바에서 모든 기본 타입은 래퍼 클래스를 이용해서 객체를 생성할 수 있다. 기본 타입 값을 내부에 두고 래퍼 클래스로 포장하는 형태다. 래퍼 클래스로 감싸고 있기 때문에 외부에서 형변환을 할 수 없다.

기본 타입을 감싸는 래퍼 클래스는 아래와 같다.

Primitive TypeWrapper Clas
booleanBoolean
charCharacter
byteByte
shortShort
intInteger
longLong
doubleDouble
floatFloat

기본 타입을 래퍼 클래스로 감싸 객체로 만드는 것을 박싱이라 하고, 반대로 객체에서 기본 타입 값을 꺼내는 것을 언박싱이라고 한다.
래퍼클래스 타입과 기본 타입이 매칭 될 땐 자동 박싱과 자동 언박싱 된다.



래퍼 클래스 상속계층도

모든 숫자 래퍼 클래스들의 조상은 Number 클래스이고 모든 래퍼 클래스의 조상은 Object 클래스다.

참고 자료


GG - 래퍼클래스
TCP - 래퍼클래스

0개의 댓글