▶ 래퍼클래스(Wrapper class)란?
: 래퍼클래스(Wrapper class)란 자바의 기본 타입을 클래스화한 변수형 객체로써 변수를 객체처럼 활용하기 위해 사용된다.
▶ 래퍼클래스(Wrapper class)의 특징
변수가 객체가 되기 때문에 다양한 메소드를 활용할 수 있다.
- 매개변수로 객체가 요구될 때
- 기본형 값이 아닌 객체로 저장해야 할 때
- 객체간의 비교가 필요할 때
단점은 변수같지만 객체이기 때문에 저장된 데이터 활용을 위해 다시 자료형으로 되돌려야 한다.
이 때 자료형 변수를 래퍼클래스로 바꾸는 과정을 박싱(boxing), 랩퍼클래스 객체를 변수로 바꾸는 과정은 언박싱(unboxing)이라고 한다.
▶ 래퍼클래스(Wrapper class)의 박싱(boxing)과 언박싱(unboxing)
박싱(boxing) : 기본 타입의 값을 Wrapper 객체로 변환
언박싱(unboxing) : Wrapper 객체에 들어있는 기본 타입의 값을 빼내는 것
▶ 자동 박싱(boxing)과 자동 언박싱(unboxing)
Integer ten = 10; //자동 박싱. Integer ten = Integer.valueOf(10);으로 자동 처리
int n = ten; //자동 언박싱. int n = ten.intValue();로 자동 처리
▶ 래퍼클래스(Wrapper class) 예시
- 기본 타입의 값으로 Wrapper 객체 생성
Integer i = Interger.valueOf(10);
Character c = Character.valueOf(‘c’);
Double f = Double.valueOf(3.14);
Boolean b = Boolean.valueOf(true);
- 문자열로 Wrapper 객체 생성
Interger I = Integer.valueOf(“10”);
double d = Double.valueOf(“3.14”);
Boolean b = Boolean.valueOf(“false”);
- Float 객체는 double 타입의 값으로 생성 가능
Float f = Float.valueOf((double) 3.14);
- Wrapper 객체로부터 기본 타입 값 알아내기
Integer i = Integer.valueOf(10);
int ii = i.intValue(); //ii=10
- 문자열을 기본 데이터 타입으로 변환
int i = Integer.parseInt(“123”); //i = 123
Boolean b = Boolean.parseBoolean(“true”); //b = true
double f = Double.parseDouble(“3.14”); // d = 3.14
- 기본 타입을 문자열로 변환
String s1 = Integer.toString(123); //정수 123을 문자열 “123"으로 변환
String s2 = Integer.toHexString(123); //정수 123을 16진수의 문자열 “7b”로 변환
String s3 = Double.toString(3.14); //실수 3.14를 문자열 “3.14” 로 변환
String s4 = Character.toString(‘a’); //문자 ‘a’를 문자열 “a”로 변환
String s5 = Boolean.toString(true); //불린 값 true를 문자열 “true”로 변환
▶ 래퍼클래스(Wrapper class) 예제
public class Ex10 {
public static void main(String[] args) {
int n = 10;
Integer intObject = n; //자동 박싱
//박싱된 값에 수를 더해도 상관없다
System.out.println("intObject = " + intObject);
int m = intObject + 10; //박싱된 값을 받음 자동 언박싱
System.out.println("m = " + m);
}
}
'JAVA' 카테고리의 다른 글
java 컬렉션(Collection)이란? (+ 예제) (0) | 2022.03.29 |
---|---|
java 제네릭(Generic)이란? (0) | 2022.03.26 |
java 인터페이스 interface (+추상클래스 차이점&유사점) (0) | 2022.03.20 |
java 추상클래스(abstract class) +추상메소드 목적 (0) | 2022.03.19 |
[JAVA] StringTokenizer 문자열 분리하기 (+hasMoreTokens 로 출력) (0) | 2022.03.17 |
댓글