π€ Wrapper Class μ¬μ© μ΄μ
μλ°μμμ μλ£νμ΄λ?
μλ£νμ΄λ λ°μ΄ν° νμ (type)μ μλ―Ένλ©°, νλ‘κ·Έλλ° μΈμ΄μμλ μ¬λ¬ μ’ λ₯μ λ°μ΄ν°λ₯Ό μλ³νλ λΆλ₯λ₯Ό μλ―Ένλ€. μλ°μμ μ 곡νλ μλ£νμ ν¬κ² 2κ°μ§λ‘ λΆλ₯ν μ μλ€.
1. κΈ°λ³Έ μλ£ν
μ€μ κ° λ§μ μ μ₯νλ 곡κ°μΌλ‘ μ€ν λ©λͺ¨λ¦¬ μμμ μ μ₯λ©λλ€.
κΈ°λ³Έκ°μ΄ μκΈ° λλ¬Έμ Nullμ΄ μ‘΄μ¬ νμ§ μκ³ λ§μ½ κΈ°λ³Έν νμ μ Nullμ λ£κ³ μΆλ€λ©΄ λνΌ ν΄λμ€λ₯Ό νμ©ν©λλ€.
νμ | ν λΉλλ λ©λͺ¨λ¦¬ ν¬κΈ° | κΈ°λ³Έκ° | |
λ Όλ¦¬ν | boolean | 1 byte | false |
μ μν | byte | 1 byte | 0 |
short | 2 byte | 0 | |
int | 4 byte | 0 | |
long | 8 byte | 0L | |
μ€μν | float | 4 byte | 0.0F |
double | 8 byte | 0.0 | |
λ¬Έμν | char | 2 byte | '\u0000' |
2. μ°Έμ‘°ν μλ£ν
μ€νμ μ μ₯λμ΄ μλ μ€μ κ°μ μ£Όμλ₯Ό μ μ₯νλ κ³³μΌλ‘ ν λ©λͺ¨λ¦¬ μμμ μ μ₯λ©λλ€.
μμ | κΈ°λ³Έκ° | ν λΉλλ λ©λͺ¨λ¦¬ ν¬κΈ° | |
λ°°μ΄(Array) | new λ₯Ό μ¬μ©ν΄ μμ±λ κ°μ²΄ | Null | 4 byte (κ°μ²΄μ μ£Όμκ° != μ€μ κ°μ μ£Όμκ°μ΄ μλ κ°μ²΄ μ체μ λν μ£Όμκ°) |
μ΄κ±°(Enum) | |||
ν΄λμ€(Class) | |||
μΈν°νμ΄μ€(Interface) |
wrapper ν΄λμ€λ?
κΈ°λ³Έ μλ£νμ μ°Έμ‘°ν μλ£νμ²λΌ μ¬μ©νκΈ° μν ν΄λμ€μ΄λ€.
μ΄λ¦μμλ μ μ μλ―, wrapper ν΄λμ€λ κ°μΈλ ν΄λμ€μ΄λ€.
κ·ΈλΌ λ¬΄μμ κ°μΈλκ°? μ λν λ΅μ κΈ°λ³Έ μλ£νμ΄λ€.
μ¦, κΈ°λ³Έ μλ£νμ κ°μ κ°μΈ κ°μ²΄ννλ‘ λ§λ κ²μ΄ λ°λ‘ wrapper ν΄λμ€μ΄λ€.
wrapper ν΄λμ€μ κ²½μ° string κ³Ό κ°μ΄ λΆλ³μ±μ κ°κ³ μλ€. λ°λΌμ wrapper ν΄λμ€ μμ κ°μ²΄μ κ°μ λ³κ²½ λΆκ°λ₯νλ€.
κΈ°λ³Έ μλ£ν | Wrapper Class |
int | Integer |
byte | Byte |
char | Charcter |
double | Double |
float | Float |
long | Long |
short | Short |
wrapper ν΄λμ€ μ¬μ©νλ μ΄μ
wrapper ν΄λμ€λ₯Ό μ¬μ©νλ μ΄μ λ μ°Έμ‘°ν μλ£νμ μ¬μ©νλ μ΄μ μ κ°λ€.
κΈ°λ³Έ μλ£νμ κ°μ λ¨μν κ°μΌλ‘λ§ μ¬μ©νμ§ μκ³ κ·Έ κ°μ λν λ©μλλ₯Ό μ¬μ© νΉμ nullκ°μ μ΄μ©νκΈ° μν΄ μ¬μ©λλ€.
νμ§λ§ μ°λ¦¬κ° wrapper ν΄λμ€λ₯Ό νν μ¬μ©νλ μ΄μ λ λ°μ λκ°μ§ μ΄μ μΌ κ²μ΄λ€.
1. Generics νμ μ κΈ°λ³Έ μλ£νμ μ¬μ©ν μ μλ€.
// List<int> list = new ArrayList<>(); // Error! intνκ³Ό κ°μ κΈ°λ³Ένμ Generics νμ
μ μ¬μ©λΆκ°
List<Integer> list = new ArrayList<>();
// Set<char> set = new HashSet<>(); // Error! charν Genericsνμ
μ μ¬μ©λΆκ°
Set<Character> set = new HashSet<>();
// Map<String, int> map = new HashMap<>(); // Error! intν μ¬μ©λΆκ°
Map<String, Integer> map = new HashMap<>();
2. νλ³ν
wrapper ν΄λμ€λ₯Ό μ¬μ©νλ©΄ μ½κ² νλ³νμ΄ κ°λ₯νλ€.
Integer i = 12;
String str;
str = i.toString(); // 12λΌλ μ«μλ₯Ό λ¬Έμμ΄ "12"λ‘ λ°ν
int primaryInt = Integer.parseInt(str); // Integerν΄λμ€ μμ μλ λ¬Έμμ΄ λ³ν ν¨μλ₯Ό μ¬μ©ν΄ λ¬Έμμ΄μ μ μλ‘ λ°κΎΈλ λͺ¨μ΅
λ°μ±(Boxing)κ³Ό μΈλ°μ±(UnBoxing)
- λ°μ±(Boxing) : κΈ°λ³Έν λ°μ΄ν° νμ (primitive type) β‘οΈ λνΌ ν΄λμ€(wrapper class)μ μΈμ€ν΄μ€λ‘ λ³ν
- μΈλ°μ±(Un-Boxing) : λνΌ ν΄λμ€(wrapper class) β‘οΈ κΈ°λ³Έν νμ (primitive type)μΌλ‘ λ³ν
- μ€ν λ°μ±(Auto Boxing) : μλ° μ»΄νμΌλ¬κ° primitive β‘οΈ wrapper class λ‘ μλ λ³ν
-
μ€ν μΈλ°μ±(Auto Un-Boxing) : μλ° μ»΄νμΌλ¬κ° wrapper class β‘οΈ primitve λ‘ μλ λ³ν
-
μ€ν λ°μ±, μ€ν μΈλ°μ± β‘οΈ Java5λΆν°
List<Integer> list = new ArrayList<>(); list.add(new Integer(100)); // κ°μ²΄ μμ±ν΄μ λ£λλ€. list.add(100); // μ€ν λ°μ± (int -> Integer) int a = 10; Integer b = a; // μ€ν λ°μ± (int -> Integer) int c = b; // μ€ν μΈλ°μ± (Integer -> int)
-
λκΈλ¨κΈ°κΈ°