Wrapper 클래스 : 기본 자료형 변수를 객체로 변환
- 기본 자료형을 감싸 객체로 만든다는 의미의 Wrapper 클래스
기본자료형 | Wrapper클래스[객체] |
boolean | Boolean |
char | Char |
byte | Byte |
short | Short |
int | Int |
long | Long |
float | Float |
double | Double |
* 왜 사용하는가?
- 객체(Object) 로 활용 : null 값을 넣거나 다형성 적용, Object 클래스 상속해 (toString() 같은) 메서드 사용 가능
- 객체만 사용하는 클래스, 인터페이스 사용 : Collection Framework 데이터 구조는 객체만 저장(Gemerics 타입에 객체만 사용 가능)
- 멀티쓰레딩 동기화 지원 시 객체 필요
래퍼 클래스는 기본형을 객체로 변환한다.
메소드에 객체(Object)로 전달된 인수를 수정하려 하거나,
기본 타입이 아닌 객체만 저장하는 ArrayList 등과 같은 Collection 프레임 워크에서 Wrapper Class를 사용(자동 박싱, 언박싱 일어남)하는 등
객체가 필요할 때 Wrapper 클래스가 필요하게 된다.
- (Boxing) 기본자료형 → Wrapper 클래스 자료형
int num = 10;
int num2 = 20;
Integer i1 = new Integer(num); // 박싱!
Integer i2 = new Integer(num2);
1. System.out.println(i1); // 출력 시 주소값 아님: Integer 안의 toString은 오버라이딩 되어 있음
2. 이제 String 클래스 사용 가능!
System.out.println(i1.equals(i2)); // 출력 값은 false
3. .compareTo 메서드 : 두 값을 비교해서 앞쪽이 크면 1 반환, 뒤쪽이 크면 -1 반환, 같으면 0 반환
System.out.println(i1.compareTo(i2));
- (AutoBoxing) 객체 생성 하지 않고 바로 대입
int num = 10;
Integer i1 = num;
+ 문자열을 Integer 타입으로 변환하고 싶다면?
객체 생성 필요 "123" -> 123 (숫자로 변환)
예) Integer i = new Integer("123");
- (UnBoxing) & (Auto unBoxing) Wrapper 클래스 자료형 → 기본자료형
int num1 = 10;
Integer i1 = num1;
1. (UnBoxing) oooValue() 메소드 이용
int num2 = i1.intValue();
2. (Auto unboxing)
int num3 = i1;
- String의 경우
String str1 = "10";
String str2 = "15.5";
1. String -> 기본자료형 : 각Wrapper클래스타입,.parseooo() 사용
int i = Integer.parseInt(str1);
double d = Double.parseDouble(str2);
2. 기본자료형 -> String : String.valueOf() 사용
String strI = String.valueOf(i);
String strD = String.valueOf(d);
System.out.println(strI + strD); // 1015.5 출력
'JAVA' 카테고리의 다른 글
JAVA Collection Framework 2: HashMap (0) | 2024.02.12 |
---|---|
JAVA Collection Framework 1: ArrayList, HashSet (0) | 2024.02.07 |
JAVA API 1: Math, String (1) | 2024.02.04 |
JAVA, 다형성 예제 문제 공부 + 객체 캐스팅(Casting) (2) | 2024.02.03 |
JAVA: 객체와 클래스 (2) | 2024.01.31 |