Programming Language/JAVA

[JAVA] 래퍼 클래스 (Wrapper Class)와 박싱(Boxing), 언박싱(UnBoxing)

Untitled_Blue 2023. 6. 9. 22:45
반응형

안녕하세요. 이번 글은 래퍼 클래스에 대한 설명입니다.

- Wrapper Class란?

  • 기본 타입 (Primitive Type)의 데이터를 객체 (Object)로 변환해주는 클래스

래퍼 클래스로 있는 모든 데이터 값들은 외부에서 수정할 수 없으며 제네릭이나 컬렉션 프레임워크에서 반드시 <> 안에 제네릭 타입 지정하는데 많이 사용된다.

Wrapper 클래스를 사용해서 자료형의 데이터를 객체로 변환하는 과정박싱 (Boxing)이라고 한다.

반대로 객체를 자료형의 데이터로 변환하는 과정언박싱 (UnBoxing)이라고 한다.

1) 오토 박싱, 언박싱 (Auto Boxing and UnBoxing)

오토 박싱과 언박싱은 자동으로 타입변환이 된다는 점에서 별도로 자료형을 명시하지 않아도 된다는 점이 특징이다.

package classes;

public class Wrapping_Practice {
    public static void main (String[] args) {
        int value = 512;
        System.out.println(value); // 512

        Integer itg = new Integer(value); // Boxing
        System.out.println(itg); // 512

        int value02 = itg; // UnBoxing
        System.out.println(value02); // 512
        System.out.println(itg == value02); // true
        System.out.println(itg + value02); // 1024
    }
}

다음과 같이 new Integer()를 통해 기존 기본 자료형을 래퍼 클래스를 통해 박싱하는 과정을 확인가능하다. 그리고 박싱된 객체를 출력하면 정상적으로 출력되는 점도 확인할 수 있다. 반대로 박싱된 객체를 기본 자료형의 변수에 대입하면서 언박싱할 수 있다. 출력 또한 정상적으로 된다. 또한 둘 다 정수라는 점에서 박싱된 객체와 그렇지 않은 변수의 값을 더하고 비교하는 것 또한 가능하다.

 

짧지만 읽어주셔서 감사합니다.

반응형