본문 바로가기

Java

[Java] Wrapper Class

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' 카테고리의 다른 글