JAVA/JAVA2

[java2] #13 - Wrapper Class (래퍼 클래스)

yoonddo 2022. 7. 19. 17:36

자바의 자료형은 기본 타입 (primitive type)참조 타입 (reference type) 으로 나누어진다.

기본 타입
(primitive type)
정수, 실수, 문자, 논리 리터럴을 저장하는 타입
(byte, short, char, int, long, float, double, boolean)
참조 타입
(reference type)
배열, 열거, 클래스, 인터페이스 등 객체의 위치를 참조하는 타입
(class, interface, ...)

 - Wrapper Class (래퍼 클래스)란 8개의 기본 타입에 해당하는 데이터를 객체로 표현하기 위해

   포장해주는 클래스라고 하며, 각각 타입에 해당하는 데이터를 인수로 전달받아 해당 값을 가지는 객체로

   만들어 준다. 레퍼 클래스는 모두 java.lang 패키지에 포함되어 제공된다.


래퍼 클래스의 특징

  •   래퍼 클래스의 특징은 기본 타입은 값을 갖는 객체인 포장 객체를 생성할 수 있다. 또한 각 타입에 해당하는데이터를 파라미터로 전달받아 해당 값을 가지는 객체로 만들어준다.
  • 래퍼 클래스로 감싸고 있는 기본 타입 값은 외부에서 변경할 수 없고 변경하기 위해서는 새로운 포장 객체를 만들어야 한다.
기본 타입 래퍼 클래스
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

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

래퍼 클래스는 산술 연산을 위해 정의된 클래스가 아니다. 따라서 인스턴스에 저장된 값을 변경할 수 없다.

값을 참조하기 위해 새로운 인스턴스를 생성하고 생성된 인스턴스의 값만을 참조할 수 있다.

 

박싱 - 기본타입의 데이터에서 래퍼 클래스의 인스턴스로 변환하는 과정

언박싱 - 래퍼 클래스의 인스턴스에 저장된 값을 기본타입의 데이터로 꺼내는 과정

// 박싱
// Integer 래퍼 클래스 num 에 21 의 값을 저장
Integer num = new Integet(21);

// 언박싱
// 래퍼 클래스 num 의 값을 꺼내 가져온다.
int n = num.intValue();

JDK 1.5 부터는 박싱과 언박싱이 필요한 상황에 자바 컴파일러가 자동으로 처리해준다.
자동화된 박싱과 언박싱을 오토 박싱 (AutoBoxing) 과  오토언박싱 (AutoUnBoxing) 이라고 부른다.

// 오토 박싱
Integer num = 21;

// 오토 언박싱
int n = num;

 

 

 

 

 

 

참조 사이트 https://jaynamm.tistory.com/entry/JAVA-%EB%9E%98%ED%8D%BC-%ED%81%B4%EB%9E%98%EC%8A%A4-Wrapper-Class

'JAVA > JAVA2' 카테고리의 다른 글

[java2] #15 - HashMap  (0) 2022.07.25
[java2] #14 - ArrayList (개념/사용법)  (0) 2022.07.19
[java2] #12 - 빠른(향상된) for문  (0) 2022.07.19
[java2] #11 - Object, equals(), hashCode()  (0) 2022.07.19
[java2] #10 - Generic(제네릭)  (0) 2022.07.16