Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

지훈의 CC일지

[JAVA] Wrapper Class (래퍼 클래스) 본문

Java

[JAVA] Wrapper Class (래퍼 클래스)

kimjihoon 2024. 5. 13. 21:19

Wrapper Class(래퍼 클래스)

  • 자바의 기본 타입을 클래스 화한 변수형 객체로써 변수를 객체처럼 활용하기 위해 사용된다.
  • int, double, boolen등은 객체가 아니다 그러므로 객체로 다루어야 할 때 사용한다.
  • 예를 들어, 객체 기반의 컬렉션에서 기본 데이터 유형을 사용하기위해 Wrapper클래스를 사용한다.
  • 래퍼 클래슨느 각각의 타입에 해당하는 데이터를 인수로 전달받은 후, 해당 값을 가지는 객체로 만들어 준다.
  • 즉 기본 타입을 객체 형태로 '포장'하는 것을 의미한다.
  • 로직이 필요하거나 컬렉션, 제네릭 활용으로 타입 안정성을 보장하기 위해서 사용된다.
  • 넓은 범위의 유틸리티 메서드를 활용할 수 있다.
  • java.lang 패키지에서 제공된다.

 

기본타입 | 래퍼 클래스

 

byte | Byte

short | Short

int | Interger

long | Long

float | Float

double | Double

char | Character

boolean | Boolean

 


Boxing (박싱) 과 Unboxing (언박싱)

  • Primitive type과 Wrapper class는 상호 변환이 이루어지는데, 이러한 과정을 Boxing과 Unboxing이라고 한다.
  • Java 5부터 도입되었으며, 기본 데이터 유형과 래퍼 클래스 간의 변환 작업을 보다 편리하게 해주는 역할을 한다.

Boxing (박싱)

  • 기본 타입에서 wrapper 클래스로 전환한다.
  • 기본 데이터 유형의 값이 래퍼 클래스의 객체로 필요한 곳에 사용될 때 자동으로 박싱이 발생한다.

Unboxing (언박싱)

  • wrapper 클래스 객체를 기본 타입으로 전환한다.
  • 래퍼 클래스의 객체가 기본 데이터 유형이 필요한 곳에 사용될 때 자동으로 언박싱이 발생한다.
  • "(자료형)Value()" 메서드를 사용해 언박싱을 할 수 있다.

Auto Boxing (오토 박싱)과 Auto Unboxing (오토 언박싱)

  • JDK 1.5부터 박싱과 언박싱이 필요한 상황에서 자바 컴파일러가 이를 자동으로 처리해 준다.

Ex)

// Boxing and Unboxing

Integer num = new Interger(17); // 박싱
int n = num.intValue(); // 언박싱

------------------------------------------

// AutoBoxing and AutoUnboxing

Integer num = 17 // Integer num = new Integer(17); : 오토박싱
int n = num; // int n = num.intValue(); // 오토언박싱
  • 오토 박싱을 이용하면 new키워드를 사용하지 않고도 자동으로 인스턴스를 생성할 수 있다.  
  • 래퍼 클래스도 객체이기 때문에 동등 연산자를 사용하게 되면, 두 인스턴스의 값을 비교하는 것이 아니라 두 인스턴스의 주소값을 비교한다.

Summary

  • WrapperClass : 기본 타입을 객체 형태로 '포장'하는 것을 의미한다.
  • boxing : 기본 타입에서 wrapper 클래스로 전환한다.
  • unboxing : wrapper 클래스 객체를 기본 타입으로 전환한다.
  • autoboxing 과 autounboxing을 사용하여 new키워드를 사용하지 않고도 자동으로 인스턴스를 생성할 수 있다.