본문 바로가기
Java

Wrapper 클래스, Boxing , UnBoxing 이란

by 신입같은 3년차 2017. 6. 10.

Wrapper 클래스

자바의 데이터 타입은 다음의 표와 같이 프리미트브 타입과 레퍼런스 타입으로 나뉜다.

프리미티브 타입은 수치, 문자등 간단한 데이터를 표현할 수 있는 타입이고 그밖의 제이터 타입은 모두 레퍼런스 타입으로 분류된다.

경우에 다라서는 프리미티브 타입의 데이터를 객체로 만들어야할 필요가 있는데 이러한경우 사용하는게 Wrapper클래스이다.

 

Wrapper클래스 : 프리미티브 타입의 값을 담는 객체를 생성하는 것이다.

 

클래스이름

프리미티브 타입

간단한 예

Byte

byte

 Byte byteA = new Byte((byte) 1);

Short

short

Short shortA = new Short((short) 231);

Integer

int

 Integer integerA = new Integer(111);

Long

long

 Long longA = new Long(10000L);

Character

char

 Character characterA = new Character('나');

Float

float

 Float floatA = new Float(13.5f);

Double

double

 Double doubleA = new Double(14.55);

Boolean

boolean

 Boolean booleanA = new Boolean(true);

 

 

표에 있는 예처럼 Wrapper클래스로 만든 객체를 Wrapper객체라고 한다.

하나의 Wrapper클래스는 하나의 프리미티값을 담을 수 있다.  값은 생성자 파라미터로 넘겨주어야 한다.

 

이제 래퍼 객체 안에 있는 프리미티브 타입의 값을 가져오는 방법에 대해 알아보자

래퍼객체 안에 있는 프리미트브 값은 래퍼클래스의 메소드를 이용하면 가져올수 있다.

값을 가져오는 메소드의 이름은 " 프리미티브타입의이름Value" 로 사용할수 있다


  

 

 

자동 Boxing과 자동 Unboxing

Boxing - 프리미티브 타입의 값을 래퍼 객체로 만드는것.

Unboxing - 래퍼 객체를 프리미티브 타입의 값으로 만드는것.

 

ex)

 

 

 

자동 Unboxing에 대해 알아 보겠습니다. 자동 Unboxing는 래퍼객체 → 프리미트브 타입 값으로의 변환을 말합니다.

 

 ex)

         

 

reason - 위의 예제에서는 Integer 객체와 int 타입의 값을 더했다. +연산자는 프리미티브 타입의 값을 더하는 연산자이기 때문에

               Integer 객체로부터 int값이 자동으로 추출된후에 더하기 연산이 실행됩니다

 

 

 

자동 Boxing에 대해 알아보겠습니다. 자동 Boxing는 프리미티브 타입 값 → 래퍼 객체로의 변환을 말한다.

 

 ex)

      

 

reason - 위의 예제에서는 double 타입의 프리미티브값을 넘겨 Double 타입 파라미터를 받는 메소드를 호출하였습니다. 이러한 경우 double타입의 프리미트브 값을 갖는 Double 객체가 자동으로 생성되어 메소드에 넘겨집니다  

 

반응형

'Java' 카테고리의 다른 글

Java GUI 프로그래밍 (2)  (0) 2017.06.23
Java GUI를 이용한 간단한 덧셈 프로그램  (0) 2017.06.23
Java GUI 프로그래밍 (1)  (0) 2017.06.22
ArrayList란  (0) 2017.06.11
Object클래스의 getClass 메소드란?  (0) 2017.06.09

댓글