John's Code Journey

[JAVA] 레퍼 클래스(Wrapper Class) 본문

IT공부/JAVA

[JAVA] 레퍼 클래스(Wrapper Class)

Johnnnn 2025. 4. 17. 12:07
728x90

📌 자바의 레퍼 클래스(Wrapper Class)란?

레퍼 클래스(Wrapper Class) 는 자바의 기본 자료형(Primitive Type)
객체(Object) 형태로 다룰 수 있도록 만들어진 클래스.

기본형 (Primitive)                                                                  레퍼 클래스 (Wrapper)
int Integer
double Double
char Character
boolean Boolean
byte Byte
short Short
long Long
float Float

❓ 왜 레퍼 클래스가 필요할까?

자바는 기본형과 객체를 구분함.
기본형은 단순한 데이터지만, 객체처럼 다루기 위해선 Wrapper가 필요하다.

💡 주된 이유:

  1. 컬렉션(예: ArrayList)에 기본형을 담을 수 없음
  2. 기본형에는 메서드가 없음
    레퍼 클래스는 메서드 제공 (예: Integer.parseInt())
  3. 형변환, 비교, 문자열 처리 등 유틸 기능 제공
ArrayList<int> list = new ArrayList<>(); // ❌ 불가능
ArrayList<Integer> list = new ArrayList<>(); // ✅ 가능

 

 

 

✨ 오토박싱 & 언박싱 (Auto-Boxing / Unboxing)

자바 5부터는 기본형과 레퍼 클래스 간의 변환이 자동됨

✔️ 오토박싱 (Auto-Boxing)

  • 기본형 → 레퍼 클래스로 자동 변환
int num = 10;
Integer boxed = num; // 오토박싱: int → Integer

✔️ 언박싱 (Unboxing)

  • 레퍼 클래스 → 기본형으로 자동 변환
Integer obj = 20;
int unboxed = obj; // 언박싱: Integer → int

 

💻 예제 코드

import java.util.ArrayList;

public class WrapperExample {
    public static void main(String[] args) {
        // 오토박싱
        Integer a = 10;
        Double b = 3.14;
        Boolean c = true;

        // 언박싱
        int x = a;
        double y = b;

        // 컬렉션 예시
        ArrayList<Integer> nums = new ArrayList<>();
        nums.add(100); // 오토박싱: int → Integer
        nums.add(200);

        int result = nums.get(0); // 언박싱: Integer → int

        System.out.println("result: " + result);
    }
}

🧠 참고: 자주 쓰는 메서드

Integer.parseInt("123");       // 문자열 → int
Double.parseDouble("3.14");    // 문자열 → double
Boolean.valueOf("true");       // 문자열 → Boolean

'IT공부 > JAVA' 카테고리의 다른 글

[JAVA] final - 변하지 않는 값  (0) 2025.04.23
[JAVA] Static - 클래스가 공유하는 공간  (0) 2025.04.23
[JAVA] JVM 메모리 구조  (0) 2025.04.17
[JAVA] 계산기 과제 Lv 2  (1) 2025.03.05
[JAVA] contains() 함수  (1) 2025.03.05