-
[JAVA] Wrapper Class (래퍼 클래스)Java 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키워드를 사용하지 않고도 자동으로 인스턴스를 생성할 수 있다.
'Java' 카테고리의 다른 글
[JAVA] 생성자, Getter&Setter, Builder (0) 2024.05.16 [JAVA] 컬렉션 프레임워크 (Collection Framework) (0) 2024.05.12 [JAVA] 오버라이딩 (Overriding), 오버로딩 (Overloading) 개념 및 차이점 (0) 2024.05.12 [JAVA] 추상 클래스와 인터페이스의 개념 및 차이 (0) 2024.05.08 [JAVA] 클래스, 객체, 인스턴스의 개념 및 차이점 (0) 2024.05.03