250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 스터디카페
- Java
- 스파르타코딩클럽
- 스프링부트
- 패키지구조
- Til
- Spring
- 스파르타코딩클럽 #사전캠프
- 계층형
- 깃
- 레퍼클래스
- 캡슐화
- 스파르타코딩클럽 #개발자 #백엔드
- 도메인별
- static
- 스파르타사전캠프
- 요시
- 함바그
- springboot
- 내일배움캠프
- 프레임워크
- 깃헙
- 자바
- 메모리구조
- jvm
- 사전캠프
- Framework
- optional
- 키오스크
- til #데이터베이스 #sql
Archives
- Today
- Total
John's Code Journey
[JAVA] 레퍼 클래스(Wrapper Class) 본문
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가 필요하다.
💡 주된 이유:
- 컬렉션(예: ArrayList)에 기본형을 담을 수 없음
- 기본형에는 메서드가 없음
레퍼 클래스는 메서드 제공 (예: Integer.parseInt()) - 형변환, 비교, 문자열 처리 등 유틸 기능 제공
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 |