본문 바로가기
Back-End/Java

[java] Wraaper 클래스, 박싱(Boxing), 언박싱(Unboxing)

by LeeGangEun 2022. 2. 16.

Wrapper 클래스

 • 자바의 기본 타입을 클래스화한 8개 클래스

 • 기본 타입의 값을 객체로 다룰 수 있게한다. 

 • 위와 같은 기본 타입을 Wrapper 클래스로 작성하면 Wrapper 객체 생성이 가능하다

 -------기본 타입 값으로 Wrapper 객체 생성 --------
 Integer i = Integer.valueOf(10);
 Character c = Character.valueOf(‘c’);
 Double f = Double.valueOf(3.14);
 Boolean b = Boolean.valueOf(true);
 ---------------------------------------------------
 
------문자열로 Wrapper 객체 생성 -------------------
Integer I = Integer.valueOf(“10”);
Double d = Double.valueOf(“3.14”);
Boolean b = Boolean.valueOf(“false”);
----------------------------------------------------

-----Float 객체는 double 타입의 값으로 생성 ---------
 Float f = Float.valueOf((double) 3.14);
 -----------------------------------------------------

Wrapper 클래스 객체 생성 예시

public class ClassTest {
	
	public static void main(String[] args) {
		
		//int a = 3;  <<<------ 기본 타입으로 생성시 출력 오류
        Interger a = 3;  <<------ Wrapper 클래스로 생성시 정상적으로 출력
        Integer a = new Integer(3); <<----- 이런식으로도 가능
        
        System.out.println(a.MIN_VALUE);
        System.out.println(a.MAX_VALUE);
		
        ---결과값----
        //-2147483648
        // 2147483647
      -----------------
	}
}

 

Wrapper 클래스 메소드

 • Wrapper 객체들은 거의 유사하다.

 • 많은 메소드가 static 타입이다.

 • 위 메소드는 Integer 클래스의 주요 메소드이다.

Wrapper 클래스 메소드 활용 예시

-------intValue() 메소드로 기본 타입 값 리턴 -------
Integer i = Integer.valueOf(10);
int ii = i.intValue(); // ii = 10
-------charValue() 메소드로 기본 타잆 값 리턴------
Character c = Character.valueOf('c' );
char cc = c.charValue(); // cc = ’c’
-------doubleValue() 메소드로 기본 타잆 값 리턴 -------
Double f = Double.valueOf(3.14);
double dd = d.doubleValue(); // dd = 3.14
------booleanValuse() 메소드로 기본 타입 값 리턴-------
Boolean b = Boolean.valueOf(true);
boolean bb = b.booleanValue(); // bb = true
---------------------------------------------------------------------------------

--------parse 메소드로 문자열을 기본 데이터 타입으로 변환--------------------------
nt i = Integer.parseInt("123"); 		// i = 123
boolean b = Boolean.parseBoolean("true"); 	// b = true
double f = Double.parseDouble("3.14" ); 	// d = 3.14
---------------------------------------------------------------------------------

------------------기본 타입을 문자열로 변환 ---------------------------------------
String s1 = Integer.toString(123); 	// 정수 123을 문자열 "123" 으로 변환
String s2 = Integer.toHexString(123); 	// 정수 123을 16진수의 문자열 "7b"로 변환
String s3 = Double.toString(3.14); 	// 실수 3.14를 문자열 "3.14"로 변환
String s4 = Charater.toString('a'); 	// 문자 ‘a’를 문자열 "a"로 변환
String s5 = Boolean.toString(true); 	// 불린 값 true를 문자열 "true"로 변환
-----------------------------------------------------------------------------------

 

 

박싱(Boxing)

기본 타입(Primitive Type)을 Wrapper 클래스로 변환하는 것

언박싱(Unboxing)

Wrapper 클래스를 기본 타입(Primitive) 타입으로 변환하는 것

자동 박싱과 자동 언박싱을 - JDK1.5 버전부터 지원해주기 때문에 크게 신경 쓸 일이 없다. ! !

개념정도만 파악해두자. 

자동화된 박싱,언박싱을 오토 박싱(Auto Boxing), 오토 언박싱(Auto Unboxing) 이라고 한다.

  public static void main(String[] args) {
        
        Integer a = new Integer(3);
        int b = 3;
        
        Integer c = (Integer) b; // 이것은 boxing
        int d = (int) a; // 이것은 Unboxing
        
        int e = a; // 자동으로 된다!!
        Integer f = b; // 자동으로 된다!!
        
    }