Wrapper Class란 말 그대로 8가지의 Primitive type을 clsss로 만든 것이다. 그래서 Primitive type을 객체로 사용하고 싶을 경우
사용한다.
Wrapper Class의 종류
- Boolean
- Character
- Byte
- Short
- Integer
- Long
- Float
- Double
이름이 워낙 직관적으로 잘 되어있어서 무슨 Primitive type을 클래스로 만든 것인지 파악하기가 쉽다. 객체화 또한 똑같이 해주면 된다. 한 가지 주의할 점은 객체화를 할 때 해당 wrapper class type에 맞는 값으로 생성을 해 주어야 한다. 무슨 말이냐면
Integer I = new Integer(11.0); 과 같이 정수형 wrapper class에 실수값으로 초기화를 하지 말아야 한다는 말이다.
만약 생성자의 값을 잘못 입력하면 NumberFormatException이 발생하게 된다.
autoBoxing&UnBoxing
JDK1.5부터 wrapper클래스로의 변환 시 컴파일러가 자동으로 코드를 추가 해 줘서 autoBoxing&UnBoxing이 가능하게 되었다.
public class Test {
final static int BUFFER_SIZE = 0;
public static void main(String[] args) {
String s = "110";
// String을 2진수로 취급하겠다는 의미이다.
// 마찬가지로 8진수와 16진수도 가능하다.
int i = Integer.parseInt(s, 2);
int i2 = Integer.parseInt(s, 8);
int i3 = Integer.parseInt(s, 16);
int i4 = 0;
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
// autoBoxing
// JDK 1.5부터 가능
Integer I = i;
System.out.println("autoBoxing된 I의 값: " + I);
i4 = I;
System.out.println("UnBoxing된 i4의 값: " + i4);
// autoBoxing되어서 가능하다.
Object[] o = { i, 3.4, "String", 3.14f, true };
for (Object object : o) {
System.out.print(object + " ");
}
}
}
'Java' 카테고리의 다른 글
[Java] 정규표현식 (0) | 2023.06.27 |
---|---|
[Java] java.util.Objects를 이용한 NPE방어 (0) | 2023.06.23 |
[자바] 쉬프트 연산자 (0) | 2023.06.15 |
[JAVA] getBytes()와 String생성자로 인코딩 디코딩하기 (0) | 2023.06.13 |
getClass() (0) | 2023.06.09 |