본문 바로가기
java/개념

래퍼 클래스(wrapper class)

by unhyepnhj 2024. 5. 11.

8개의 기본 타입(byte, short, int, long, char, double, float, boolean)을 객체로 다루기 위해 JDK에 만들어진 8개의 클래스를 통칭하여 Wrapper 클래스라고 함

기본 타입 Wrapper 클래스
byte Byte
short Short
int Integer
long Long
char Character
float Float
double Double
boolean Boolean

Wrapper 클래스의 객체 생성

- Wrapper 객체는 기본 타입의 값을 인자로 하여 정적 메소드인 valueOf()를 호출하여 생성

- Character를 제외한 나머지 Wrapper 클래스의 경우, 문자열로 Wrapper 객체 생성 가능

Integer i = Integer.valueOf(10);		//정수 10의 객체화
Character c = Character.valueof('c');		//문자 c의 객체화
Double d = Double.valueof(3.14);		//실수 3.14의 객체화
Boolean b = Boolean.valueOf(true);		//boolean 값 true의 객체화

//문자열로 Wrapper객체 생성 
Integer j = Integer.valueOf("10");
Double k = Double.valueOf("3.14");

Wrapper 클래스의 활용

- Wrapper 클래스는 많은 메소드를 제공하지만, 대부분 기본 타입 값↔문자열을 서로 변환

- 가장 많이 사용되는 Integer 클래스의 주요 메소드

static int bitCount(int i)			//정수 i의 이진수 표현에서 1의 개수 리턴
float floatValue()				//float 타입으로 값 리턴
int intValue()					//int 타입으로 값 리턴
long longValue()				//long 타입으로 값 리턴
short shortValue()				//short 타입으로 값 리턴
static int paresInt(String s)			//문자열 s를 10진 정수로 변환한 값 리턴
static int parseInt(String s, int radix)	//문자열 s를 지정된 진법의 정수로 변환한 값 리턴
static String toBinaryString(int i)		//정수 i를 이진수 표현으로 변환한 문자열 리턴
static String toHexString(int i)		//정수 i를 16진수 표현으로 변환한 문자열 리턴
static String toOctalString(int i)		//정수 i를 8진수 표현으로 변환한 문자열 리턴
static String toString(int i)			//정수 i를 문자열로 변환하여 리턴
static Integer valueOf(int i)			//정수 i를 담은 Integer 객체 리턴
static Integer valueOf(String s)		//문자열 s를 정수로 변환하여 담고 있는 Integer 객체 리턴

 

Wrapper 객체에 들어 있는 기본 타입 값 알아내기

Integer i = Integer.valueOf(10);
int ii = i.intValue();		//ii=10

Double d = Double.valueOf(3.14);
doubld dd = d.doubleValue();	//dd=3.14

Boolean b = Boolean.valueOf(true);
boolean bb = b.booleanValue();	//bb=true

 

문자열을 기본 타입으로 변환

- Wrapper 클래스는 문자열을 기본 타입의 값으로 변환하는 메소드를 제공

int i = Integer.parseInt("123");		//i=123
boolean b = Boolean.parseBoolean("true");	//b=true
double d = Double.parseDouble("3.14");		//d=3.14

- parseInt, parseBoolean, parseDouble 메소드는 모두 static 타입이므로 Wrapper 클래스의 이름으로 바로 메소드를 호출

- Wrapper 클래스는 해당 타입으로 변환하는 메소드만을 제공(Integer 클래스는 parseBoolean()을 제공하지 않음)

 

기본 타입 값을 문자열로 변환

- Wrapper 클래스는 기본 타입 값을 문자열로 변환하는 메소드를 제공

String s1 = Integer.toString(123);	//정수 123을 문자열 "123"으로 변환
String s2 = Integer.toHexString(123);	//정수 123을 16진수 문자열 "7B"로 변환
String s3 = Double.toString(3.14);	//실수 3.14
String s4 = Character.toString('a');	//문자 'a'를 문자열 "a"로 변환
String s5 = Boolean.toString(true);	//boolean 값 true를 문자열 "true"로 변환

예제 6-5 다음 Wrapper 클래스 활용 프로그램의 실행 결과

'java > 개념' 카테고리의 다른 글

객체 지향과 자바  (0) 2024.05.11
오름차순/내림차순 정수 정렬  (0) 2024.05.11
예외 처리  (0) 2024.05.10
main() 메소드  (0) 2024.05.10
메소드에서 배열 리턴  (0) 2024.05.08