[java] Wrapper(래퍼) 클래스

[java] Wrapper(래퍼) 클래스

기본자료형을 객체로 포장해주는 클래스들을 래퍼클래스라고 함

-언제쓰냐?

1. 기본자료형을 객체로 취급해야 하는 경우

2. 메소드 호출 시, 메소드의 매개변수로 기본자료형이 아닌 객체타입만 요구 될 때

3. 다형성을 적용시키고 싶을 때

- Boxing(박싱) : 기본 타입의 값을 포장 객체로 만드는 과정

1. 생성자 를 이용해여 박싱

ex) Byte obj = new Byte(10);

Byte obj = new Byte("10");

2. 래퍼클래스마다 가진 static메소드인 valueOf() 메소드 활용

ex) Integer obj = Integer.valueOf(1000); ※deprecated; 가급적이면 사용하지말아라, 앞으로의 버전에 삭제될지도 모름.

Integer obj = Interger.valueOf("1000"); ※deprecated

- Unboxing(언박싱) : 포장 객체에서 기본 타입의 값을 얻어내는 과정

* '기본 타입 이름' + ValueOf() 메소드 호출

ex) num = obj.intValue();

ch = obj.charValue();

- Auto Boxing(자동박싱)과 Auto UnBoxing(자동언박싱)

1. 포장 클래스 타입에 기본값이 대입될 경우 자동 박싱발생

ex) Integer obj = 100; // 100이라는 기본값이 Integer타입으로 자동박싱돼서 그 번지수가 obj참조변수에 대입되는 것

2. 기본 타입에 포장 객체가 대입되는 경우 및 연산에서 자동 언박싱 발생

ex) Integer obj = new Integer(200);

int value1 = obj; // 200, 자동 언박싱으로 기본타입값을 끄집어 내서 대입

int value2 = obj + 100; // 300, 자동 언박싱으로 obj안에 있는 200끄집어 내서 산술연산뒤 대입

- String을 기본자료형으로

포장 클래스로 문자열을 기본 타입 값으로 변환

'parse + 기본 타입 이름' static 메소드

* parse; 파싱하다 = 알아먹게 바꾼다. 문법적 해부, 컴파일하다 = 기계어 번역

[표현법]

해당 Wrapper클래스이름.parseXXX(변환할문자열);

- 기본자료형 String형으로

String.valueOf(변환할기본자료형값) : 반환형 String

- 래퍼 클래스 비교

포장 객체는 내부 값 비교하기 위해 == 및 != 연산자 사용하지 않는 것이 좋다. (객체의 주소번지를 비교하기 때문)

객체의 주소 값이 아닌 iv값을 비교하도록 equals()를 사용!

from http://jjorong-e.tistory.com/67 by ccl(A) rewrite - 2021-11-20 19:28:16