자바에서는 정수나 실수와 같은 기초 자료형을 제외하고는 모든 것이 객체로 되어 있다. 하지만 어떤 경우에는 정수와 같은 기초 자료형도 객체로 포장하고 싶은 경우가 있다. 가장 대표적인 예가 객체만을 저장하는 ArrayList이다. ArrayList에 기초 자료형을 넣으려면 기초 자료형을 객체로 포장하여야 한다. 이것이 바로 Wrapper 클래스이다.
Wrapper 클래스는 정수와 같은 기초 자료형을 저장하고 있는 클래스이다. 예를 들어서 Integer 클래스는 정수값을 데이터로 가지고 있다. Integer 클래스의 객체를 만드는 문장은 다음과 같다.
Integer obj = new Integer(10); |
랩퍼 클래스는 여러 가지 유용한 메소드도 제공한다. 특히 저장된 값을 다른 자료형으로 변환하는 메소드를 제공한다. 이중에서도 가장 많이 사용되는 메소드는 기초 자료형을 문자열로 변환하거나, 또는 반대로 변환하는 메소드이다.
값을 저장하고 꺼내기
Wrapper 객체에 기초 자료형의 값을 저장하고 꺼내는 문장은 다음과 같다.
Integer obj1 = new Integer(100);
int value1 = obj1.intValue();
Double obj2 = new Double(3.141592);
double value2 = obj2.doubleValue();
기초 자료형을 문자열로 변환
만약 기초 자료형을 문자열로 변환하고 싶다면 각 랩퍼 클래스의 toString() 메소드를 이용할 수 있다.
String s1 = Integer.toString(10);
String s2 = Integer.toString(1000);
String s3 = Float.toString(3.14);
String s4 = Double.toString(3.141592);
문자열을 기초 자료형으로 변환
문자열을 기초 자료형으로 변환 하려면 각 Wrapper 클래스의 parseInt() 메소드를 사용한다. 사용자가 값을 입력하는 경우, 문자열로 입력된다. 따라서 문자열을 수치값으로 변환할 필요가 있다. 아래와 같이 각 기초 자료형에 따라 해당되는 Wrapper 클래스를 사용하여야 한다.
int i = Integer.parseInt("10");
long l = Long.parseLong("10000");
float f = Float.parseFloat("3.14");
double d = Double.parseDouble("3.141592");
오토 박싱
자바 Wrapper 객체와 기초 자료형 사이의 변환을 자동으로 하여 주는 기능이 있다. 이것은 오토 박싱(auto-boxing)이라고 한다.
예를 들어서 다음과 같은 문장에서 int형 정수는 Integer 객체로 자동으로 변환된다. 또한 Integer 객체는 자동으로 int형 정수로 변환된다.
Integer box;
box = 10; // 정수를 자동으로 Integer 객체로 포장한다. (boxing)
System.out.println( box + 1); // box는 자동으로 int형으로 변환(unboxing)
'java' 카테고리의 다른 글
예외 처리 (try/catch) (0) | 2019.04.30 |
---|---|
오버로딩 정리해주세요 (0) | 2019.04.23 |
Object 클래스 (0) | 2019.04.22 |
자바 패키지란? (0) | 2019.04.22 |
자바 오버라이딩 (0) | 2019.04.11 |