래퍼 클래스(Wrapper Class)
프로그램에 따라 기본 타입의 데이터를 객체로 취급해야 하는 경우가 있습니다. 예를 들어, 메소드의 인수로 객체 타입만이 요구되면, 기본 타입의 데이터를 그대로 사용할 수는 없습니다. 이때에는 기본 타입의 데이터를 먼저 객체로 변환한 후 작업을 수행해야 합니다.
이렇게 8개의 기본 타입에 해당하는 데이터를 객체로 포장해 주는 클래스를 래퍼 클래스(Wrapper class)라고 합니다. 래퍼 클래스는 각각의 타입에 해당하는 데이터를 인수로 전달받아, 해당 값을 가지는 객체로 만들어 줍니다. 이러한 래퍼 클래스는 모두 java.lang 패키지에 포함되어 제공됩니다.
※ 래퍼 클래스 중에서 Integer 클래스와 Character 클래스만이 자신의 기본 타입과 이름이 다름을 주의해야 합니다.
래퍼클래스의 구조도
박싱(Boxing)과 언박싱(UnBoxing)
래퍼 클래스(Wrapper class)는 산술 연산을 위해 정의된 클래스가 아니므로, 인스턴스에 저장된 값을 변경할 수 없습니다. 단지, 값을 참조하기 위해 새로운 인스턴스를 생성하고, 생성된 인스턴스의 값만을 참조할 수 있습니다.
- 박싱(Boxing): 기본 타입의 값을 포장 객체로 만드는 과정
- 언박싱(Unboxing): 포장 객체에서 기본 타입의 값을 얻어내는 과정
박싱 하는 방법
- 생성자 이용
- valueOf() 메소드 이용
자동 박싱(AutoBoxing)과 자동 언박싱(AutoUnBoxing)
JDK 1.5부터는 박싱과 언박싱이 필요한 상황에서 자바 컴파일러가 이를 자동으로 처리해 줍니다. 이렇게 자동화된 박싱과 언박싱을 오토 박싱(AutoBoxing)과 오토 언박싱(AutoUnBoxing)이라고 부릅니다.
자동 박싱 : 포장 클래스 타입에 기본값이 대입될 경우 발생
자동 언박싱 : 기본 타입에 포장 객체가 대입될 경우 발생
public class WrapperEx {
public static void main(String[] args) {
Integer num_wrapper = 20; // 자동 박싱
int num = num_wrapper; //자동 언박싱
System.out.println(num);
}
}
'코딩 공부 > web & Java' 카테고리의 다른 글
[JSP] Java Bean (0) | 2022.10.17 |
---|---|
[Web] DAO, DTO, VO, Entity (0) | 2022.10.17 |
[JAVA] 싱글톤 (0) | 2022.10.11 |
[MySQL WorkBench] error 1175 (0) | 2022.09.29 |
[JDBC] excute 종류 (0) | 2022.09.28 |