wrapper 클래스 (래퍼 클래스)

박영준·2023년 6월 19일
0

Java

목록 보기
89/112

1. 정의

  • 자바는 객체 지향 언어지만, 완전한 객체 지향 언어는 아니다.
    따라서, 8개의 기본형은 객체로 다뤄지지 않는다.

    그러나 이 8개의 기본형 마저 객체로 다루고 싶을 경우에 사용하는 것이 wrapper 클래스다.

  • “기본형 변수를 클래스로 한번 랩핑(감싸는) 변수”

    • 클래스는 객체지향 언어의 핵심 기능
      • 클래스로 변수를 관리하면 객체지향의 많은 기능을 사용할 수 있다

2. 형변환

문자열 → 기본형으로 변환할 경우

byte b = Byte.parseByte("100");
short s = Short.parseShort("100");
int i = Integer.parseInt("100");
long l = Long.parseLong("100");
float b = Float.parseFloat("3.14");
double b = Double.parseDouble("3.14");

문자열 → 래퍼 클래스로 변환할 경우

Byte b = Byte.valueOf("100");
Short s = Short.valueOf("100");
Integer i = Integer.valueOf("100");
Long l = Long.valueOf("100");
Float b = Float.valueOf("3.14");
Double b = Double.valueOf("3.14");
  • 해당 타입에 맞지 않는 값을 인자로 받을 경우, NumberFormatException 예외가 발생한다

3. 오토박싱, 언박싱

// 컴파일 전
int i = 5;
Integer num = new Integer(7);

int sum = i + num;		// 기본형 i + 참조형 num

// 컴파일 후
int i = 5;
Integer num = new Integer(7);

int sum = i + num.intValue();		// 참조형 → 기본형 으로 변환해주는 intValue() 메서드가 자동으로 붙게 된다
  • '기본형 + 참조형' 계산이 가능하다

    • 컴파일 되면서, 기본형 값과 래퍼 클래스의 객체 간에 자동 변환이 되기 때문

      • 오토박싱 (autoboxing)

        • 기본형 값 → 래퍼 클래스의 객체 로 자동 변환해주는 것
      • 언박싱 (unboxing)

        • 래퍼 클래스의 객체 → 기본형 값 으로 자동 변환해주는 것

4. 박싱, 언박싱

// 박싱
int number = 21;
Integer num = number;			// Integer 래퍼 클래스 num 에 21 의 값을 저장
// Integer num = new Integet(number);		new Interger 는 지금은 안 쓰는 방식. (위의 방식으로 사용하기)

// 언박싱
int n = num.intValue();		// 래퍼 클래스들은 inValue() 같은 언박싱 메서드들을 제공
profile
개발자로 거듭나기!

0개의 댓글