Wrapper 클래스란 ?
wrapper라는 의미는 '감싸다'라는 뜻으로 랩으로 음식을 감싸는 것을 연상할 수 있습니다.
이제 궁금한건 '뭘 감싸는 거지?'하는 물음이 생기실 겁니다. 결론적으로 말하면 Primitive Type 변수를 감싸는 것입니다.
이어서 'Primitive Type 변수'는 무엇인지에 대한 물음이 생기실 것입니다. Wrapper Class에 대한 자세한 내용을 알아보기 전에 Primitive Type에 대한 개념을 먼저 정리하겠습니다.
Java의 데이터 타입의 종류
자바에서는 데이터 타입이 크게 기본형(Primitive Type)과 참조형(Reference Type)이 있습니다.
자바는 객체 지향 언어이지만 자바 안에 객체가 아닌 것이 바로 int, double 등과 같은 기본형(Primitive Type)입니다.
참조형(Reference Type)의 경우 스택에 저장되어 있는 실제 값의 주소를 저장하는 곳으로 힙 메모리에 저장되는 타입을 의미합니다.
기본형의 한계
기본형은 객체가 아니기 때문에 다음과 같은 한계가 존재합니다.
객체가 아님
기본형 데이터는 객체가 아니기 때문에 객체 지향 프로그래밍의 장점을 살릴 수 없습니다.
예를 들어 객체는 유횽한 메서드를 제공할 수 있는데, 기본형은 객체가 아니므로 메서드를 제공할 수 없습니다. 그리고 제네릭도 사용할 수 없습니다.
null 값을 가질 수 없음
기본형 데이터 타입은 null값을 가질 수 없습니다. 때로는 데이터가 '없음'이라는 상태를 나타내야 할 필요가 있는데, 기본형은 항상 값을 가지기 때문에 이런 표현을 할 수 없습니다.
Wrapper Class란 ?
Wrapper Class는 자바에서 사용되는 기본형의 데이터를 서로 형 변환이 가능하도록 지원해주는 Class로써, 기본형의 자료형들을 Class화 한 것입니다.
자바는 기본형에 대응하는 Wrapper Class를 기본으로 제공합니다.
자바가 제공하는 기본 Wrapper Class는 equeals로 비교해야하며, 불변이라는 특징을 가지고 있습니다.
Auto Boxing과 Auto UnBoxing
먼저 Boxing은 기본형을 Wrapper Class로 변경하는 것을 마치 박스에 문건을 넣은 것 같다고 해서 박싱(Boxing)이라고 부르며, 래퍼 클래스에 들어있는 기본형 값을 다시 꺼는 것을 언박싱(Unboxing)이라고 합니다.
기본형을 Wrapper Class로 변환하거나 Wrapper Class를 기본형으로 변황하는 일이 자주 발생했습니다. 그래서 많은 개발자들이 불편함을 호소했고 자바는 이런 문제를 해결하기 위해 자바 1.5부터 Auto Boxing과 Auto Unboxing을 지원하게되었습니다.
'프로그래밍 > Java' 카테고리의 다른 글
[Java, 자바] 날짜와 시간 클래스에 대하여 (0) | 2024.07.19 |
---|---|
[Java, 자바] Enum에 대하여 (0) | 2024.07.16 |
[Java, 자바] String 클래스에 대하여 (0) | 2024.07.02 |
[Java, 자바] 불변 객체에 대하여 (0) | 2024.06.27 |
[Java, 자바] Object클래스에 관하여 (0) | 2024.06.23 |
개발의 모든 것 !
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!