래퍼 클래스 개념
byte, short, int, long, char, double, float 등 8개의 기본 타입을 객체로 다루기 위해 JDK에 만들어진 8개 클래스를 통칭하여 래퍼(Wrapper) 클래스라고 한다. JDK의 일부 클래스는 객체만을 다루기 때문에 3, ‘a’ 등 기본 타입의 데이터를 사용할 수 없으므로 기본 타입의 값을 객체로 만들어 사용할 수 있도록 한다. 객체 생성 예제 코드는 다음과 같다.
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 객체화
래퍼 클래스의 활용
래퍼 클래스는 많은 메소드를 제공하나, 대부분은 기본 타입 값을 문자열로 변환하거나, 문자열을 기본 타입 값으로 변환하는 것들이 주를 이루고 있다. 클래스 활용 예제 코드는 다음과 같다.
package ch6n5;
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을 2진수 문자열로 변환한다.
System.out.println(Integer.toBinaryString(28)); // 28을 16진수 문자열로 변환한다.
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로 변환한다.
}
}