Wrapper 클래스란?
- 프로그램에 따라 기본 타입의 데이터를 객체로 취급해야하는 경우가 발생하는데 이러한 int, double, char 등 8개의 기본 타입을 객체로 다루기 위해 만들어진 클래스
기본 타입 | byte | short | int | long | char | float | double | boolean |
Wrapper클래스 | Byte | Short | Integer | Long | Character | Float | Double | Boolean |
예전에 경우
Integer a = new Integer(100);
new 연산자를 통해 객체를 생성했는데
이 경우 deprecated 즉 더 이상 사용되지 않는다고 한다.
따라서 다음과 같이 정적 메소드인 valueOf()를 호출하여 사용해야 한다.
Integer a = Integer.valueOf(1);
또한 이러한 객체화된 기본 타입의 값을 알아내기 위해서는 다음 코드를 사용해야 한다.
Integer i = Integer.valueOf(10);
int ii = i.intValue();
Double d = Double.valueOf(3.14);
double dd = d.doubleValue();
Boolean b = Boolean.valueOf(true);
boolean bb = b.booleanValue();
Wrapper 클래스는 다음과 같이 문자열을 기본 타입의 값으로 변환하는 메소드를 제공한다.
int i = Integer.parseInt("123");
boolean b = Boolean.parseBoolean("true");
double d = Double.parseDouble("3.14");
반대로 기본 타입 값을 문자열로 변환하는 메소드도 제공한다.
String s1 = Integer.toString(123); //정수형 123을 문자열 "123"으로 변환
String s3 = Double.toString(3.14); //실수 3.14를 문자열 "3.14"로 변환
박싱(boxing)과 언박싱(unboxing)
기본 타입의 값을 Wrapper 객체로 변환하는 것을 박싱이라 하고 반대의 경우 언박싱이라고 한다.
Integer ten = Integer.valueOf(10);
-> 박싱
int n =Integer.intValue();
-> 언박싱
박싱과 언박싱은 JDK 1.5 부터 자동으로 이루어지며, 이를 자동 박싱, 자동 언박싱이라 한다.
Integer ten = 10; //자동 박싱
int n = ten; //자동 언박싱