Wrapper 클래스

조용근·2024년 2월 10일

자바 정리

목록 보기
21/21

Wrapper 클래스

기본 데이터 타입(primitive data types)을 객체로 포장하는 데 사용되는 클래스이다. java.lang 패키지에 정의되어 있다.

  • boolean ↔ Boolean
  • byte ↔ Byte
  • char ↔ Character
  • short ↔ Short
  • int ↔ Integer
  • long ↔ Long
  • float ↔ Float
  • double ↔ Double

Wrapper 클래스의 사용

1. 컬렉션 프레임워크에서의 사용: 자바의 컬렉션 프레임워크(Collection Framework)는 객체만을 저장할 수 있다. 예를 들어, ArrayList, HashMap과 같은 컬렉션은 기본 데이터 타입을 직접 저장할 수 없다. 이 때, 해당 기본 데이터 타입의 Wrapper 클래스를 사용하여 데이터를 저장한다.

ArrayList<Integer> list = new ArrayList<>();
list.add(1); // Autoboxing: 기본 데이터 타입 int가 Integer 객체로 자동 변환

2. null 값의 필요성: 기본 데이터 타입은 null 값을 가질 수 없다. 만약 어떤 변수가 null 값을 가질 수 있어야 하는 경우에 Wrapper 클래스를 사용할 수 있다. 이는 변수가 어떤 값도 가지고 있지 않음을 표현할 필요가 있을 때 유용하다.

3. 제네릭 사용 시: 제네릭은 타입 매개변수로 클래스 타입만을 허용한다. 따라서, 제네릭을 사용하는 클래스나 메서드에 기본 데이터 타입을 사용하고 싶은 경우, 해당 기본 데이터 타입의 Wrapper 클래스를 사용해야 합니다.

HashMap<Integer, String> map = new HashMap<>();
map.put(1, "one");

Autoboxing and Unboxing

자동 포장 및 해제(Autoboxing and Unboxing): 자바 5부터는 기본 데이터 타입과 Wrapper 클래스 간의 변환을 자동으로 처리한다. 기본 데이터 타입의 값을 Wrapper 클래스의 객체로 자동 변환하는 것을 Autoboxing이라 하고, 반대로 Wrapper 클래스의 객체에서 기본 데이터 타입의 값을 얻어내는 것을 Unboxing이라 한다.

요약

  • AutoBoxing = 기본 데이터 -> Wrapper 클래스 객체
  • Unboxing = Wrapper 클래스 -> 기본 데이터
Integer obj = 5; // Autoboxing: 기본 데이터 타입 int를 Integer 객체로 자동 변환
int n = obj;     // Unboxing: Integer 객체에서 기본 데이터 타입 int의 값을 자동으로 얻음

자바 5부터 오토박싱과 언박싱 기능을 알아서 변환해주기 때문에 현재 시점에서 개발자가 이러한 변환을 명시적으로 관리할 필요가 적어졌다.

profile
Today I Learn

0개의 댓글