방명록
- [Java] Wrapper 클래스를 사용하는 이유와 실제 예제2025년 06월 15일 18시 34분 58초에 업로드 된 글입니다.작성자: DandyNow728x90반응형
자바 Wrapper 클래스를 사용하는 이유와 실제 예제
자바에서 Wrapper 클래스는 기본 데이터 타입(primitive data type)을 객체 형태로 다루기 위해 사용한다. 이는 여러 상황에서 유용하며, 특히 제네릭(Generics)이나 컬렉션(Collection) 프레임워크와 함께 사용될 때 그 필요성이 더욱 부각된다.
1. Wrapper 클래스 사용의 주요 이유
- 기본 타입을 객체로 다룰 필요가 있을 때:
- 자바의 많은 프레임워크나 API는 객체를 기반으로 동작한다. 예를 들어,
java.util패키지의 컬렉션(List, Set, Map 등)은 객체만을 저장한다. 따라서int,double과 같은 기본 타입을 컬렉션에 저장하려면 해당 기본 타입의 Wrapper 클래스(Integer, Double 등)를 사용해야 한다.
- 자바의 많은 프레임워크나 API는 객체를 기반으로 동작한다. 예를 들어,
null값을 표현해야 할 때:- 기본 타입은
null값을 가질 수 없다. 하지만 Wrapper 클래스는 객체이므로null값을 가질 수 있다. 이는 데이터베이스에서 가져온 값이 없거나, 어떤 값이 선택 사항인 경우null로 표현할 때 유용하다.
- 기본 타입은
- 메소드에서 객체로 전달해야 할 때:
- 메소드의 매개변수가 객체 타입만을 허용하는 경우, 기본 타입을 Wrapper 클래스로 변환하여 전달해야 한다.
- 특정 상수나 유틸리티 메소드를 사용할 때:
- Wrapper 클래스는 해당 기본 타입과 관련된 다양한 상수(예:
Integer.MAX_VALUE,Double.POSITIVE_INFINITY)나 유틸리티 메소드(예:Integer.parseInt(),Double.toString())를 제공한다.
- Wrapper 클래스는 해당 기본 타입과 관련된 다양한 상수(예:
2. 실제 예제
다음은 Wrapper 클래스를 사용하는 간단한 실제 예제이다.
import java.util.ArrayList; import java.util.List; public class WrapperClassExample { public static void main(String[] args) { // 1. 컬렉션에 기본 타입 값 저장 (Auto-boxing 활용) // ArrayList는 객체만을 저장할 수 있으므로, int는 자동으로 Integer로 변환된다. List<Integer> numbers = new ArrayList<>(); numbers.add(10); // int -> Integer (Auto-boxing) numbers.add(20); numbers.add(30); System.out.println("컬렉션에 저장된 숫자들:"); for (Integer num : numbers) { System.out.println(num); // Integer -> int (Auto-unboxing) } System.out.println(); // 2. null 값 처리 // Integer는 null 값을 가질 수 있다. Integer optionalValue = null; if (optionalValue == null) { System.out.println("선택적 값은 현재 설정되지 않았다."); } else { System.out.println("선택적 값: " + optionalValue); } // 특정 조건에 따라 값을 할당 boolean hasValue = true; if (hasValue) { optionalValue = 100; } System.out.println("변경된 선택적 값: " + optionalValue); System.out.println(); // 3. 문자열을 숫자로 변환 (Wrapper 클래스의 유틸리티 메소드 활용) String strNum = "12345"; int parsedNum = Integer.parseInt(strNum); // 문자열을 int로 변환 System.out.println("문자열을 파싱한 숫자: " + parsedNum); // Double 클래스 예제 String strDouble = "3.14"; double parsedDouble = Double.parseDouble(strDouble); System.out.println("문자열을 파싱한 실수: " + parsedDouble); } }이 예제에서 볼 수 있듯이, Wrapper 클래스는 자바의 객체 지향적 특성을 유지하면서 기본 타입을 유연하게 다룰 수 있도록 돕는다. 특히 자바 5부터 도입된 오토박싱(Auto-boxing)과 오토언박싱(Auto-unboxing) 기능 덕분에 기본 타입과 Wrapper 클래스 간의 변환이 자동으로 이루어져 코드 작성이 더욱 편리해졌다.
728x90반응형'언어·프레임워크 > Java' 카테고리의 다른 글
[Java] 람다식, 일급 객체 그리고 문과 식의 이해 (0) 2025.06.21 [Java] 자바의 컬렉션은 왜 '프레임워크'라고 불릴까? 라이브러리와의 결정적 차이! (1) 2025.06.15 [Java ] `System.identityHashCode()`와 `hashCode()` 메서드의 차이점 (1) 2025.06.14 [Java] 인터페이스 개념을 USB로 이해하기 (2) 2025.06.08 [Java] 정보 은닉과 캡슐화: 객체 지향 프로그래밍의 핵심 원칙 (3) 2025.06.08 다음글이 없습니다.이전글이 없습니다.댓글 - 기본 타입을 객체로 다룰 필요가 있을 때: