본문 바로가기
내일배움캠프/회고록

6월 19일 수요일

by jhdevtrace 2024. 6. 19.

 

래퍼 클래스(Wrapper Class)는 기본 자료형을 객체로 다룰 수 있게 해주는 클래스를 말합니다. Java에서는 모든 기본 자료형에 대응하는 래퍼 클래스가 있습니다. 래퍼 클래스를 사용하면 기본 자료형 값을 객체처럼 취급할 수 있으며, 다양한 유틸리티 메서드와 함께 사용할 수 있습니다.

기본 자료형과 대응하는 래퍼 클래스

기본 자료형 래퍼 클래스

byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

주요 용도

  1. 컬렉션 프레임워크 사용: Java의 컬렉션 프레임워크는 객체만 저장할 수 있습니다. 기본 자료형을 직접 저장할 수 없기 때문에, 이를 래퍼 클래스로 변환하여 사용해야 합니다.
  2. java코드 복사 List<Integer> list = new ArrayList<>(); list.add(10); // int 값을 Integer 객체로 자동 변환 (오토박싱)
  3. 유틸리티 메서드 제공: 래퍼 클래스는 기본 자료형과 관련된 다양한 유틸리티 메서드를 제공합니다. 예를 들어, 문자열을 숫자로 변환하거나, 기본 자료형 값의 범위를 체크하는 등의 작업을 할 수 있습니다.
  4. java코드 복사 String s = "123"; int num = Integer.parseInt(s); // 문자열을 int로 변환
  5. 기본 자료형과 객체 간의 변환: 래퍼 클래스를 사용하면 기본 자료형 값을 객체로, 객체를 기본 자료형 값으로 쉽게 변환할 수 있습니다.

박싱(Boxing)과 언박싱(Unboxing)

  • 박싱(Boxing): 기본 자료형 값을 래퍼 클래스 객체로 변환하는 것.
  • java코드 복사 int a = 5; Integer boxedA = Integer.valueOf(a); // 명시적 박싱 Integer autoBoxedA = a; // 오토박싱
  • 언박싱(Unboxing): 래퍼 클래스 객체를 기본 자료형 값으로 변환하는 것.
  • java코드 복사 Integer b = 10; int unboxedB = b.intValue(); // 명시적 언박싱 int autoUnboxedB = b; // 오토언박싱

예제 코드

java코드 복사
public class WrapperExample {
    public static void main(String[] args) {
        // 기본 자료형을 래퍼 클래스로 박싱
        int num = 100;
        Integer wrappedNum = Integer.valueOf(num);  // 명시적 박싱
        Integer autoWrappedNum = num;  // 오토박싱

        // 래퍼 클래스를 기본 자료형으로 언박싱
        int unwrappedNum = wrappedNum.intValue();  // 명시적 언박싱
        int autoUnwrappedNum = wrappedNum;  // 오토언박싱

        // 유틸리티 메서드 사용
        String str = "1234";
        int parsedNum = Integer.parseInt(str);  // 문자열을 int로 변환

        // 컬렉션 사용 예
        List<Integer> numberList = new ArrayList<>();
        numberList.add(1);  // 오토박싱
        numberList.add(2);

        for (int n : numberList) {
            System.out.println(n);  // 오토언박싱
        }
    }
}

이 예제에서는 기본 자료형 int와 대응하는 래퍼 클래스 Integer를 사용하여 박싱과 언박싱, 유틸리티 메서드의 사용, 컬렉션에 값을 추가하는 방법을 보여줍니다.

'내일배움캠프 > 회고록' 카테고리의 다른 글

6월 25일 화요일  (0) 2024.06.25
6월 21일 금요일  (0) 2024.06.21
6월 20일 목요일  (0) 2024.06.20
6월 18일 화요일  (0) 2024.06.18
6월 17일 월요일  (0) 2024.06.17