본문 바로가기

Java

Java- 래퍼 클래스

기본 자료형의 값을 감싸는 래퍼 클래스

 래퍼 클래스의 기능

  래퍼 클래스는 기본 자료형의 값을 감싸는 클래스이다.

  종종 기본 자료형 인스턴스가 필요한 일이 있다. int 형 인스턴스, double 인스턴스 등등... 

그러나 기본 자료형 같은 경우 인스턴스를 생성하지 않는다. 그래서 그럴 때는 래퍼 클래스를 이용하여 기본 자료형의 값을 감싼다.

 

 래퍼 클래스의 종류

  • Boolean
  • Character
  • Byte
  • Short
  • Integer
  • Long
  • Float
  • Double

 

 박싱 / 언박싱

  박싱값을 인스턴스에 감싸는 것을 말하고, 언박싱은 저장된 값을 꺼내는 것을 말한다.

박싱은 인스턴스를 생성하는 과정에서 진행되고, 언박싱은 메소드를 호출하여 진행한다. 참고로 래퍼 인스턴스들은 담고 있는 값의 수정이 불가하다 (마치 String 처럼..). 그렇기 때문에 값의 수정이 필요시에는 언박싱 후 박싱 과정을 거쳐서 값을 수정하도록 한다.

 

public class BoxingUnboxing {
    public static void main(String[] args) {
        Integer itg = new Integer(10);  //박싱
        int i = itg.intValue();  //언박싱
        System.out.println(i);  //10

        itg = new Integer(itg.intValue()+10); //itg += 10 (언박싱 후 박싱으로 값 수정)
        i = itg.intValue();
        System.out.println(i);  //20
    }
}

 

  언박싱 메소드

  • Boolean        public boolean booleanValue( );
  • Character     public char charValue( );
  • Integer          public int intValue( );
  • Long             public long longValue( );
  • Double          public double doubleValue( );

 오토 박싱 / 오토 언박싱

  근데 이제는 자바에서 자동으로 박싱, 언박싱을 처리해줘서 굳이 위에 처럼 new, 메소드... 이런거 안해줘도 된다.

그래서 그냥 기본 자료형 사용하듯이 똑같이 사용하면 된다.

public class BoxingUnboxing {
    public static void main(String[] args) {
        Integer num = 111;  // 오토 박싱 
        Double db = 44.1;  // 오토 박싱
        
        int i = num;  // 오토 언박싱
        double d = db;  // 오토 언박싱
        
        num+=3; //오토 박싱, 오토 언박싱 동시 진행
    }
}

'Java' 카테고리의 다른 글

Java- Random 클래스, 난수 생성  (0) 2023.01.06
Java- BigInteger, BigDecimal 클래스  (0) 2023.01.03
Java- Object 클래스  (0) 2023.01.02
Java- 예외처리  (0) 2023.01.02
Java- 인터페이스와 추상클래스 비교  (0) 2023.01.01