*JAVA*

[java] Wrapper(래퍼) 클래스

깐부로부터 2021. 11. 20. 19:12

java.lang 패키지에 속함

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

 

-언제쓰냐?

 1. 기본자료형을 객체로 취급해야 하는 경우
 2. 메소드 호출 시, 메소드의 매개변수로 기본자료형이 아닌 객체타입만 요구 될 때
 3. 다형성을 적용시키고 싶을 때

 

 

 

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

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

ex) Byte obj = new Byte(10); deprecated; 가급적이면 사용하지말아라, 앞으로의 버전에 삭제될지도 모를 코딩법.

     Byte obj = new Byte("10"); deprecated;

 

2. 래퍼클래스마다 가진 static메소드인 valueOf()메소드 활용. 위의 생성자를 이용한 박싱보다 이렇게 박싱하길 추천

ex) Integer obj = Integer.valueOf(1000);

     (int obj = Integer.valueOf(1000); 기본형에도 대입가능

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

   

 

 

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

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

ex) int num = obj.intValue();

     char 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()를 사용!

 

 

 

'*JAVA*' 카테고리의 다른 글

[java] StringTokenizer 클래스  (0) 2021.11.20
[java] Math 클래스  (0) 2021.11.20
[java] 컬렉션 프레임웍(Collections Framework)  (0) 2021.11.19
[java] IO 스트림  (0) 2021.11.18
[java] API - java.lang 패키지  (0) 2021.11.16