Java
Wrapper 클래스
YunHyeong
2022. 7. 25. 17:00
자바의 자료형은 기본 타입과 참조 타입으로 나누어진다. 기본 타입에는 char, int, float, double, boolean 등이 있고, 참조 타입은 class, interface 등이 있다. 래퍼클래스는 기본 타입을 객체로 다루기 위해서 사용하는 클래스(참조 타입)들이다.
Wrapper클래스를 사용하는 이유는 참조형 자료형을 사용하는 이유와 같다. 기본 자료형의 값을 단순히 값으로만 사용하지 않고 그 값에 대한 메서드를 사용 혹은 null값을 이용하기 위해 사용된다. 하지만 크게 우리가 Wrapper클래스를 사용하는 이유는 제네릭과 기본 자료형의 값을 문자열로 변환 혹은 반대 경우일 것이다.
Wrapper 클래스의 종류
wrapper 클래스는 기본 자료형을 감싼 것이기 때문에 종류 또한 기본 자료형과 일치한다.
byte -> Byte
short -> Short
int -> Integer
long -> Long
double -> Double
char -> Character
float -> Float
boolean -> Boolean
기본 자료형의 값을 문자열로 변환
wrapper 클래스를 사용하면 기본 자료형의 값을 문자열로 쉽게 변환이 가능하다.
Integer i = 5;
String str;
str = i.toString() // str : 문자열 5
int primaryInt = Integer.parseInt(str) // str: 정수형 5
박싱과 언박싱
Wrapper 클래스에서 알아야할 개념은 Boxing과 Unboxing이다. 기본 자료형에서 Wrapper클래스 자료형으로 변경하고 싶을 경우, 혹은 반대의 경우에는 Boxing과 Unboxing이 필요하다. 기본 자료형 -> 래퍼 클래스로 만들기 위해서 Boxing이 필요하고, 래퍼 클래스 -> 기본자료형으로 만들기 위해서는 Unboxing이 필요하다.
int primaryInt = 20;
Integer WrapperInt1 = new Integer(20); // int 자료형 20을 박싱한 모습
Integer wrapperInt2 = Integer.valueOf(20); // 동일한 결과지만 이걸 더 선호,
// valueOf가 공간 및 시간 성능이 크게 향상될 가능성이 높다.
primaryInt = wrapperInt.intValue(); // Integer클래스 안에 있는 언박싱 함수를 호출 한 모습
기본 자료형과 Wrapper클래스 연산
autoBoxing과 autoUnboxing에 의해서 연산이 가능하다.
Integer wrapperInt = new Integer(21);
int primaryInt = wrapperInt; // wrapperInt가 자동 언박싱 되는 모습
wrapperInt+primaryInt;// 이것의 결과 값은 기본 자료형이다.