우주코딩
wrapper 클래스, 오토박싱(auto-boxing)/오토언박싱(auto-unboxing) 본문
wrapper 클래스
primitive 타입은 Object 의 서브타입이 아니기 때문에 Object 레퍼런스에 담을 수 없다.
primitive 타입을 wrapper 클래스에 담아서 Object 레퍼런스에 담을 수 있도록 한다.
wrapper 클래스 = Object 의 서브타입
new Integer (int);
new Float(float);
new Boolean(boolean);
primitive 값을 객체화하는 용도로 사용하기 위해 만든 클래스
primitive type wrapper 클래스
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character
Wrapper 클래스의 인스턴스를 생성할 때는 생성자 대신 클래스 메서드를 사용하라
Byte b = new Byte((byte)100);
Short s = new Short((short)20000);
Integer i = new Integer(3000000);
// 권장하지 않는다.
Byte b2 = Byte.valueOf((byte)100);
Short s2 = Short.valueOf((short)20000);
Integer i2 = Integer.valueOf(3000000);
Long l2 = Long.valueOf(60000000000L);
// 메서드를 사용하는 것이 좋다.
오토박싱(auto-boxing)/오토언박싱(auto-unboxing)
auto-boxing
wrapper 객체 자동 생성
Integer i = 100;
ㄴ Integer.valueOf(100) 으로 컴파일러가 변환
wrapper 객체의 주소가 i에 들어가는 것이다.
auto-unboxing
wrapper 객체에 들어있는 값을 자동으로 꺼낸다.
Integer obj = Integer.valueOf(100);
int i = obj;
// 컴파일러는 obj 를 obj.intValue()로 변환
obj안에 들어있는 것은 인스턴스, int 는 primitive 파일
wrapper 객체에 보관된 int 값을 꺼내 i에 저장된다.
'자바 본 강의' 카테고리의 다른 글
인터페이스 상속 (0) | 2021.08.12 |
---|---|
인터페이스 정의, 구현하기 , default 메서드, private & static 메서드 (0) | 2021.08.12 |
String 클래스, 문자열 리터럴, String 클래스와 equals() 메서드, hashCode() 메서드, toString() 메서드, mutable vs immutable (0) | 2021.08.10 |
hashCode() 예시와 오버라이딩하기 (0) | 2021.08.10 |
Object 클래스와 hashCode() 메서드 (0) | 2021.08.09 |