Java

[Java] 기본 API 클래스⑥ Wrapper 클래스

망고고래 2024. 4. 4. 17:57

what?

기본 데이터타입 변수를 객체변수로 포장하는 클래스

why?

객체로 다루어지지 않는 기본 데이터타입을 객체로 다루기 위함

how?

1)모든 기본 데이터타입에는 각 래퍼 클래스가 있다.

ex)boolean-Boolean, Char-Character, byte-Byte...

 

2)인스턴스 생성

Integer i = new Integer(100);
Double d = new Double(3.14);

 

3)래퍼 클래스의 메서드를 활용하면 다른 데이터타입으로 변환하기 편함

(1)래퍼 클래스 -> 기본 데이터타입

데이터타입명+Value()

//Integer 클래스 인스턴스 생성
Integer i = new Integer(100);

//Integer 클래스 변수 int 변수로 변경
int a = i.intValue();

//Integer 클래스 변수 double 변수로 변경
double b = i.doubleValue();

 

(2)문자열->숫자

//문자열 100을 int형 100으로 전환
int a = Integer.parseInt("100");

//문자열 3.14를 double형 3.14로 전환
double b = Double.parseDouble("3.14");

 

 

(3)숫자->문자열

int number = 36;
String s = Integer.toString(number);
System.out.println(s+36);
//3636 출력

 

(4)문자열->Wrapper 클래스

Integer i = Integer.valueOf("100");
Float f = Float.valueOf("2.65");

 

 

4)immutable

Wrapper 클래스는 변하지 않는 성격을 가짐

-> 연산할 때마다 새로운 객체 생성

 

5)오토박싱/언박싱

오토박싱: 기본 데이터타입을 자동으로 객체자료형으로 변환

Integer i = 100;
//Integer i = new Integer(100);과 같음

 

언박싱: 객체자료형을 자동으로 기본 데이터타입으로 변환

integer i = new Integer(100);
int a = 3;
a = a + i;
//a = a + i.intValue(); 생략 가능