Wrapper 클래스란
자바의 기본 타입을 클래스화한 8개 클래스
byte - Byte
short - Short
int - Integer
long - Long
char - Char
float - Float
double - Double
boolean - Bolean
용도 - 기본 타입의 값을 객체로 다룰 수 있게 함
Wrapper 객체 생성 : valueOf()
기본 타입의 값으로 Wrapper 객체 생성
Integer i = Integer.valueOf(10);
Character c = Character.valueOf('c');
Double f = Double.valueOf(3.14);
Boolean b = Boolean.valueOf(true);
문자열로 Wrapper 객체 생성
Integer I = Integer.valueOf("10");
Double d = Double.valueOf("3.14");
Float객체는 double 타입의 값으로 생성'도' 가능
Float f = Float.valueOf((double)3.14);
주요 메소드
Wrapper 객체들은 거의 유사, 많은 메소드가 static 타입
Integer 클래스의 주요 메소드
static int parseInt(String s) : 문자열 s를 10진 정수로 변환한 값 리턴
static String toString(int i) : 정수 i를 문자열로 변환하여 리턴 (특별취급)
static Integer valueOf(int i) : 정수 i를 담은 Integer 객체 리턴
static Integer valueOf(String s) : 문자열 s를 정수로 변환하여 담고 있는 Integer 객체 리턴
Wrapper 활용
int ii = i.intValue();
char cc = c.charValue();
double dd = d.doubleValue();
boolean bb = b.booleanValue();
문자열을 기본 데이터타입으로 변환 : 클래스.parse자료형("")
int i = Integer.parseInt("123");
double f = Double.parseDouble("3.14");
기본타입을 문자열로 변환 : toString 함수
Character 클래스 메소드
isDigit(char ch) : 문자 ch의 값이 숫자인지 판단
isAlphabetic(int codePoint) : codePoint의 값이 알파벳인지 판단
isLowerCase(char) : 소문자인지 확인 (true / false)
isWhitespace(char) : 공백문자인지 확인
toLowerCase(char) : 소문자로 변경
isUpperCase(char) : 대문자인지 확인
toUpperCase(char) : 대문자로 변경
[예제]
public class WrapperTest {
public static void main(String[] args) {
System.out.println(Character.toLowerCase('A'));
char c1 = '4', c2 = 'F';
if(Character.isDigit(c1))
{
System.out.println(c1 + "는 순자입니다.");
}
if(Character.isAlphabetic(c2))
{
System.out.println(c2 + "는 영문자");
}
System.out.println(Integer.parseInt("-123"));
}
}
박싱과 언박싱
박싱(boxing)
기본 타입의 값을 Wrapper객체로 변환
언박싱(Unboxing)
Wrapper 객체에 들어 있는 기본 타입의 값을 빼내는 것
ex.
Interger ten = Integer.valueof(10);
int n = ten.intValue();
JDK 1.5부터 자동박싱과 언박싱
Integer ten = 10;
int n = 10;