자바에서 기본 타입 변수는 Heap 영역에 객체를 생성하지 않고 값을 그대로 가진다.
그런데 기본 타입의 값을 갖는 객체를 생성하고 싶다면?
이 때 사용하는 것이 Wrapper 클래스이며, 기본 타입의 값을 갖는 객체를 Wrapper 객체라고 한다.
기본 타입 | 포장 클래스 |
byte | Byte |
short | Short |
char | Character |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
▶ 박싱과 언박싱
Boxing : 기본 타입의 값을 포장 객체로 만드는 과정.
Unboxing : 포장 객체에서 기본 타입의 값을 얻어내는 과정.
▶ 박싱하는 방법
1. Wrapper 클래스의 생성자를 이용
Byte obj = new Byte(10); |
Character obj = new Character('가'); |
Short obj = new Short(100); |
Integer obj = new Integer(1000); |
Long obj = new Long(100000); |
Float obj = new Float(2.5F); |
Double obj = new Double(3.5); |
Boolean obj = new Boolean(true); |
매개변수에 기본 값 대신 문자열을 줘도 된다. 단, Character는 안 됨.
2. 각 포장 클래스마다 가지고 있는 정적 valueOf() 메소드 사용
Integer obj = Integer.valueOf(1000);
Integer obj = Integer.valueOf("1000");
마찬가지로 매개변수에 기본 값 대신 문자열을 줘도 된다. 단, Character는 안 됨.
▶ 언박싱하는 방법
각 포장 클래스마다 가지고 있는 "기본타입명Value()" 메소드 사용
byte num = obj.byteValue();
char ch = obj.charValue();
short num = obj.shortValue();
int num = obj.intValue();
long num = obj.longValue();
float num = obj.floatValue();
double num = obj.doubleValue();
boolean bool = obj.booleanValue();
▶ 자동 박싱과 언박싱
자동 박싱
1) 포장 클래스에 기본 값이 대입될 경우
자동 언박싱
1) 기본 타입에 포장 객체가 대입될 경우
2) 포장 객체와 기본 값을 연산할 경우
▶ 문자열을 기본 타입 값으로 변환하기
대부분의 포장 클래스는 "parse+기본타입("문자열")" 형식으로, 문자열을 기본 타입으로 변환하는 static 메소드를 제공한다.
byte num = Byte.parseByte("10");
short num = Short.parseShort("10");
int num = Integer.parseInteger("10");
long num = Long.parseLong("10");
float num = Float.parseFloat("10F");
double num = Double.parseDouble("10.0");
boolean bool = Boolean.parseBoolean("true");
▶포장 값 비교
==와 != 연산자는 포장 객체의 참조를 비교하기 때문에, 내부의 값을 비교하려면
1) .equals() 메소드를 사용
2) 언박싱한 후 비교
'old > Java' 카테고리의 다른 글
java.util.Date / java.text.SimpleDateFormat (0) | 2020.11.16 |
---|---|
java.lang.Math / java.util.Random (0) | 2020.11.16 |
java.util.Arrays (0) | 2020.11.16 |
정규 표현식과 Pattern 클래스 (0) | 2020.11.16 |
java.util.StringTokenizer (0) | 2020.11.16 |