본문 바로가기

자바공부

자바 Wrapper 클래스 개념공부

728x90
반응형

* Wapper 클래스 개념

사실 이름이 Wrapper인 클래스는 존재하지 않는다. 다만, int, char, double 등 8개의 기본 타입을 객체로 다루기 위해 JDK에 만들어진 8개 클래스를 통칭하여 Wrapper 클래스라 한다.

기본 타입과 그에 대응하는 Wrapper 클래스
절대 JAVA

용도

1) 기본형을 참조형으로 포장한 포장 클래스

2) 객체 형태가 되어야만 사용할 수 있는 컬렉션 등에 사용하기 위하여 필요함

 

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

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); // 불린 값 true의 객체화

// Character를 제외한 나머지 Wrapper 클래스의 경우, 문자열로 객체를 생성할 수도 있다.
Integer i = Integer.valueOf("10");
Double d = Double.valueOf("3.14);
// 문자열로 객체 생성

* Wrapper 클래스는 많은 메소드를 제공하나, 대부분은 기본 타입 값을 문자열로 변환하거나, 문자열을 기본 타입 값으로 변환하는 것들이 주를 이루고 있다. (기본 타입 -> 문자열, 문자열 -> 기본 타입)

ex) 가장 많이 사용되는 Integer 클래스의 주요 메소드 (많은 메소드가 static 타입이다)

메소드 설명
static int bitCount(int i) 정수 i의 이진수 표현에서 1의 개수 리턴
float floatValue() float 타입으로 값 리턴
int intValue() int 타입으로 값 리턴
long longValue() long 타입으로 값 리턴
short shortValue() short 타입으로 값 리턴
static int parseInt(String s) 문자열 s를 10진 정수로 변환한 값 리턴
static int parseInt(String s, int radix) 문자열 s를 지정된 진법(radix)의 정수로 변환한 값 리턴
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 객체 리턴

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

 

ex) Wrapper 클래스 활용

public class WrapperEx{
	public static void main(String[] args) {
		System.out.println(Character.toLowerCase('A')); // 'A'를 소문자로 변환
		
		char c1='4', c2='F';
		if(Character.isDigit(c1)) // 문자 c1이 숫자이면 true
			System.out.println(c1 + "는 숫자");
		if(Character.isAlphabetic(c2)) // 문자 c2가 영문자이면 true
			System.out.println(c2 + "는 영문자");
		
		System.out.println(Integer.parseInt("-123")); // "-123"을 10진수로 변환, 음수로 변환됨
		System.out.println(Integer.toHexString(28)); // 정수 28을 16진수 문자열로 변환
		System.out.println(Integer.toBinaryString(28)); // 정수 28을 2진수 문자열로 변환
		System.out.println(Integer.bitCount(28)); // 28에 대한 2진수의 1의 개수
		
		Double d = Double.valueOf(3.14);
		System.out.println(d.toString()); // Double을 문자열 "3.14"로 변환
		System.out.println(Double.parseDouble("3.14")); // 문자열을 실수 3.14로 변환
		
		boolean b = (4>3); // b는 true
		System.out.println(Boolean.toString(b)); // true를 문자열 "true"로 변환
		System.out.println(Boolean.parseBoolean("false")); // 문자열을 false로 변환
	}
}

실행 결과

4는 숫자

F는 영문자

-123

1c

11100

3

3.14

3.14

true

false

반응형