본문 바로가기
JAVA

[JAVA] Wrapper (래퍼) 클래스

by Amy IT 2022. 5. 29.

자바에서는 8개의 기본 데이터 타입과 동일한 값을 표현할 수 있는 8개의 Wrapper 클래스를 제공합니다. 기본 데이터를 클래스로 둘러싸서 클래스가 제공하는 변수 및 메소드를 활용하고자 하는 목적으로 사용됩니다.

 

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

 

 

◆ Wrapper 클래스의 주요 메소드

 

//문자열 "123"을 정수 123으로 변경
int strInt = Integer.parseInt("123");
System.out.println(strInt+10);

//문자열 "3.14F"를 실수 3.14F로 변경
float strFloat = Float.parseFloat("3.14F");
System.out.println(strFloat+10);

//정수 123을 문자열 "123"으로 변경
String intStr = Integer.toString(123);
System.out.println(intStr+10);

//실수 3.14F를 문자열 "3.14F"로 변경
String floatStr = Float.toString(3.14F);
System.out.println(floatStr+10);

 

 

 

◆ 오토 박싱(auto-boxing)과 오토 언박싱(auto-unboxing)

 

기본형 데이터를 Wrapper 클래스 객체로 둘러싸주는 것을 박싱(Boxing)이라고 하고, Wrapper 객체로 둘러싸여있던 것을 풀어 다시 기본형 데이터로 변경하는 것을 언박싱(UnBoxing)이라고 합니다. JDK 1.5 버전 이전에는 다음과 같은 추가적인 작업이 필요했습니다. 

//기본형을 Wrapper로 변경
int num = 10;
Integer x = new Integer(num);

//Wrapper를 기본형으로 변경
int num2 = x.intValue();

 

그러나 JDK 1.5 버전 이후로는 기본형에서 Wrapper 클래스로 자동 변환되는 오토 박싱과 Wrapper 클래스에서 기본형으로 자동 변환되는 오토 언박싱이 제공됩니다. 따라서 위와 같이 Wrapper 클래스를 직접 객체 생성하는 방식은 deprecated(중요도가 떨어져 더 이상 사용되지 않음)되었다며 경고 메세지가 뜨게 됩니다. 이제 위와 같은 추가 작업 없이 쉽게 호환이 가능하도록 구현할 수 있습니다. 

//오토박싱
Integer x1 = 10;
Object [] arr = {10, 20};

//오토언박싱
int num3 = x1;
System.out.println(x1+10); //20
System.out.println(x1==10); //true

 

 

 

댓글