[자바] Wrapper Class

강은서·2022년 1월 31일
0

Java

목록 보기
7/9
post-thumbnail

Wrapper class(래퍼 클래스)

기본 타입의 데이터를 객체를 취급해야 하는 경우(ex.메소드의 인수로 객체 타입만이 요구 되는 경우)에는 기본 타입의 데이터를 먼저 객체로 변환한 후 작업을 수행해야 한다.

8개의 기본 타입에 해당하는 데이터를 객체로 다루기 위해서 사용하는 클래스들을 래퍼 클래스(Wrapper class) 라고 한다.

각각의 타입에 해당되는 데이터를 인수로 전달받아, 해당 값을 가지는 객체로 만들어 준다. 이는 모두 java.lang패키지에 포함되어 제공된다.

왼쪽 정렬가운데 정렬
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

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

Wrapper클래스는 산술 연산을 위해 정의된 클래스가 아니므로, 인스턴스에 저장된 값을 변경할 수 없다. 값을 참조하기 위해 새로운 인스턴스를 생성하고, 생성된 인스턴스의 값만을 참조할 수 있다.

  • Boxing : 자료형 → Wrapper클래스
  • Unboxing : Wrapper클래스 → 자료형

래퍼 클래스는 각각 언박싱을 위한 intValue()메소드와 charValue()메소드가 포함되어있다.

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

Character ch = 'X'; //Character ch = new Character('X') //오토 박싱
char c = ch; //char c = ch.charValue() //오토 언박싱

래퍼 클래스도 객체 이므로 동등 연산자(==)를 사용하게 되면, 두 인스턴스의 값을 비교하는 것이 아니라 두 인스턴스의 주소값을 비교하게 된다.

그러므로 인스턴스에 저장된 값의 동등 여부를 정확히 판단하기 위해서는 equals()메소드를 사용해야만 한다.

0개의 댓글