728x90
반응형

래퍼 클래스 (Wrapper Class)

자바의 자료형은 기본 타입(primitive type)참조 타입(reference type) 으로 나누어진다.

 

기본 타입은 정수, 실수, 문자, 논리 리터럴을 저장하는 타입이다.
참조 타입은 배열, 열거, 클래스, 인터페이스 등 객체의 위치를 참조하는 타입니다.

 

기본 타입 : byte, short, char, int, long, float, double, boolean
참조 타입 : class, interface, ...

 

래퍼 클래스 8개의 기본 타입에 해당하는 데이터를 객체로 표현하기 위해 포장해주는 클래스라고 한다.
각각의 타입에 해당하는 데이터를 인수로 전달받아 해당 값을 가지는 객체로 만들어준다.
래퍼 클래스는 모두 java,lang 패키지에 포함되어 제공된다.

 

래퍼 클래스 특징으로는 
기본 타입은 값을 갖는 객체인 포장 객체를 생성할 수 있다.
래퍼 클래스는 각 타입에 해당하는 데이터를 파라미터로 전달받아 해당 값을 가지는 객체로 만들어준다.
래퍼 클래스로 감싸고 있는 기본 타입 값은 외부에서 변경할 수 없다.
변경하기 위해서는 새로운 포장 객체를 만들어야 한다.

 

간단하게 말해 래퍼 클래스란 기본 타입의 객체화를 말한다.

 

자바의 8개의 기본 타입에 대한 래퍼 클래스는 다음과 같다.

기본 타입 래퍼 클래스
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

확인해보면 int, char 타입을 제외한 나머지 기본 타입은 첫 번째 단어를 대문자로 바꿔주었고
int 와 char 타입은  Integer, Character 로 바뀌어 사용되는 것을 확인해볼 수 있다.

 

 

박싱 (Boxing) 과 언박싱 (UnBoxing)

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

 

박싱과 언박싱에 대해 간단하게 설명해보면

 

박싱 : 기본타입의 데이터 -> 래퍼 클래스의 인스턴스로 변환하는 과정
언박싱 : 래퍼 클래스의 인스턴스에 저장된 값 -> 기본 타입의 데이터로 꺼내는 과정

 

코드를 통해 확인해보자.

// 박싱
// Integer 래퍼 클래스 num 에 21 의 값을 저장
Integer num = new Integet(21);

// 언박싱
// 래퍼 클래스 num 의 값을 꺼내 가져온다.
int n = num.intValue();

 

JDK 1.5 부터는 박싱과 언박싱이 필요한 상황에 자바 컴파일러가 자동으로 처리해준다.
자동화된 박싱과 언박싱을 오토 박싱 (AutoBoxing) 과  오토언박싱 (AutoUnBoxing) 이라고 부른다.

// 오토 박싱
Integer num = 21;

// 오토 언박싱
int n = num;

 

 

- 참고 사이트 -

http://tcpschool.com/java/java_api_wrapper

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

https://velog.io/@guswns3371/Wrapper-Class란

 

Wrapper Class란

Wrapper Class란 무엇이고, Wrapping을 함으로써 얻는 이점과 일급 콜랙션에 대한 사용 예시를 들며 설명

velog.io

https://flatsun.tistory.com/77

 

자바 래퍼 클래스(wrapper class)란 무엇인가!!

래퍼 클래스(wrapper class) 하면 수업 성실하게 들은 사람들이 아닌 이상 어.. 듣긴 들었는데 그게 뭐였더라 이런 반응이 나올텐데 이런 반응이 나오는 것이 당연하다 강사나 교수들이 존나 대충 알

flatsun.tistory.com

 

728x90
반응형
복사했습니다!