JAVA - Wrapper 클래스

이재원·2024년 10월 26일
0

JAVA

목록 보기
4/7

Wrapper 클래스

Wrapper 클래스는 int, char, double 등 8개의 기본 타입을 객체로 다루기 위해 JDK에 만들어진 클래스들을 통칭하는 것으로, Wrapper인 클래스가 존재하는 것은 아니다.

Wrapper 클래스의 객체 생성 방법

Integer i = Integer.valueOf(10);
Character c = Character.valueOf('c');
Double d = Double.valueOf(3.14);
Boolean b = Boolean.valueOf(true);

JDK 9 부터는 생성자를 이용한 객체 생성을 폐기하였기 때문에 위와 같이 정적 메서드를 사용하여 초기화 해주면 된다. Wrapper 클래스 대부분의 메서드는 static 메서드이다.

Wrapper 객체에 들어 있는 기본 타입 값 알아내는 방법

int ii = i.intValue(); // 10
double dd = d.doubleValue(); // dd = 3.14
boolean bb = b.booleanValue(); // bb = true

문자열을 기본 타입으로 변환

int i = Integer.parseInt("123");
boolean b = Boolean.parseBoolean("true");
double d = Double.parseDouble("3.14");

기본 자료형을 문자열로 변환

String s1 = Integer.toString(123); // s1 = "123"
String s2 = Boolean.toString(true); // s2 = "true"

박싱(boxing)과 언박싱(unboxing)

기본 타입의 값을 Wrapper 객체로 변환하는 것을 박싱(boxing)이라고 하고, 반대의 경우를 언박싱(unboxing)이라고 한다.

박싱과 언박싱은 자동으로 이뤄지며, 이를 자동 박싱(auto boxing), 자동 언박싱(auto unboxing)이라고 부른다.

Integer ten = 10;
int n = ten;

Wrapper 클래스가 필요한 이유

기본 타입만으로도 충분히 표현 가능한데 Wrapper 클래스가 필요한 이유가 뭘까?

그 이유는 JDK의 어떤 클래스들은 객체만을 다루기 때문에 기본 타입의 데이터는 사용할 수 없기 때문이다. 이 때 Wrapper 클래스를 통해 기본 타입의 값을 객체로 만들어 사용한다.

정리하자면 다음과 같다.

  1. 래퍼 클래스는 기본 데이터 타입을 Object로 변환할 수 있다. 메소드에 전달된 인수를 수정하려는 경우 오브젝트가 필요하다. ( 기본 유형은 값에 의한 변경 Object는 참조에 의한 변경이기 때문이다. )
  2. java.util 패키지의 클래스는 객체만 처리하므로 Wrapper class는 이 경우에도 도움이 된다.
  3. ArrayList 등과 같은 Collection 프레임 워크의 데이터 구조는 기본 타입이 아닌 객체만 저장하게 되고 Wrapper Class를 사용하여 자동 방식과 언방식이 일어 난다.

출처
명품 JAVA programming - 황기태, 김효수
https://www.youtube.com/사람만이
https://medium.com/@s23051/래퍼-클래스란-wrapper-class-cc5aa6f7cdd1

profile
20학번 새내기^^(였음..)
post-custom-banner

0개의 댓글