Written by
Sunwoo Han
on
on
래퍼 클래스(Wrapper Class)란 무엇인가
래퍼 클래스(Wrapper Class)란?
자바의 자료형은 크게 기본 타입(primitive type)과 참조 타입(Reference type)으로 나누어진다. 대표적인 기본 타입으로 char, int, float, double, boolean 등이 있고 참조 타입으로 class, interface 등이 있는데 간혹 기본 타입의 데이터를 객체로 표현해야 하는 경우가 있다. 이럴 때 기본 자료타입(primitive type)을 객체로 다루기 위해서 사용하는 클래스들을 래퍼 클래스(Wrapper class)라고 한다. 자바에서 모든 기본타입은 값을 갖는 객체를 생성할 수 있는데, 이런 객체를 포장 객체라고 한다. 이 객체는 기본 타입의 값을 내부에 두고 포장을 하기 때문에 그렇게 불리는데, 래퍼 클래스로 감싸고 있는 기본 타입 값은 외부에서 변경할 수 없다. 만약 값을 변경하고 싶다면 새로운 포장 객체를 만들어야 한다.
래퍼 클래스의 종류
기본형 | 래퍼클래스 | 생성자 | 활용 예시 |
---|---|---|---|
boolean | Boolean | Boolean (boolean value) Boolean (String s) |
Boolean b = new Boolean(true); Boolean b2 = new Boolean(“true”); |
char | Character | Character (char value) | Character c = new Character(‘a’); |
byte | Byte | Byte (byte value)</br> Byte (String s) | Byte b = new Byte(10);</br> Byte b2 = new Byte(“10”); |
short | Short | Short (short value)</br> Short (String s) | Short s = new Short(10);</br> |
int | Integer | Integer (int value)</br> Integer (String s) | Integer i = new Integer(100);</br> Integer i2 = new Integer(“100”); |
long | Long | Long (long value)</br> Long (String s) | Long l = new Long(100);</br> Long l2 = new Long(“100”); |
float | Float | Float (double value)</br> Float (float value)</br> Float (String s) | Float f = new Float(1.0);</br> Float f2 = new Float(1.0f);</br> Float f3 = new Float(“1.0f”); |
double | Double | Double (double value)</br> Double (String s) | Double d = new Double(1.0);</br> Double d2 = new Double(“1.0”); |
래퍼 클래스 구조도
계층 구조에서 알 수 있듯이, 기본형 중에서 숫자와 관련된 래퍼 클래스들은 모두 Number클래스의 자손이라는 것을 알 수 있다.
박싱(boxing)과 언박싱(UnBoxing)
기본 타입의 값을 포장 객체로 만드는 과정을 박싱(Boxing)이라고 하고 반대로 포장객체에서 기본타입의 값을 얻어내는 과정을 언박싱(UnBoxing)이라고 한다.
자동 박싱(AutoBoxing)과 자동 언박싱(AutoUnBoxing)
기본타입 값을 직접 박싱, 언박싱하지 않아도 자동적으로 박싱과 언박싱을 해주는 경우가 있다. 이는 자동 박싱의 포장 클래스 타입에 기본값이 대입될 경우에 발생한다.
Reference
- Wiki
- 남궁 성님의 자바의 정석
- w3resource
Comments
JAVA 의 다른 글
-
서블릿 컨테이너(Servlet Container)란? 05 May 2021
-
지네릭스, 열거형, 애너테이션 27 Oct 2020
-
컬렉션 프레임웍 2편 16 Oct 2020
-
컬렉션 프레임웍 1편 14 Oct 2020
-
날짜와 시간 & 형식화 12 Oct 2020
-
java.lang패키지와 유용한 클래스 29 Sep 2020
-
예외처리 24 Sep 2020
-
객체지향 프로그래밍 II 2편 21 Sep 2020
-
객체지향 프로그래밍 II 1편 19 Sep 2020
-
객체지향 프로그래밍 I 2편 18 Sep 2020
-
객체지향 프로그래밍 I 1편 16 Sep 2020
-
배열 array 14 Sep 2020
-
조건문과 반복문 if, switch, for, while statement 13 Sep 2020
-
연산자 Operator 2편 13 Sep 2020
-
연산자 Operator 1편 11 Sep 2020
-
변수 Variable 2편 09 Sep 2020
-
변수 Variable 1편 08 Sep 2020
-
자바를 시작하기 전에 07 Sep 2020
-
래퍼 클래스(Wrapper Class)란 무엇인가 30 Aug 2020
-
java.lang.Math 29 Aug 2020
-
진수 변환, 형 변환 29 Aug 2020
-
Arrays.sort() 29 Aug 2020
-
Enhanced for loop 20 Aug 2020
-
toCharArray() 20 Aug 2020