๐ Wrapper Class
- ํฌ์ฅ ํด๋์ค(Wrapper Class)๋ ํน์ ๊ธฐ๋ณธํ ํ์ ์ ๊ฐ์ฒด๋ก ๋ค๋ฃฐ ๋ ์ฌ์ฉ๋๋ค.
Java๋ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ์ฌ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์
์ ์ง์ํ์ง๋ง,
ํด๋์ค๋ฅผ ํตํด์ ๋ง๋ค์ด์ง ๊ฐ์ฒด๋ฅผ ํตํ ๋ฐ์ดํฐ ๊ด๋ฆฌ๋ ๊ฐ๋ฅํ๋ค.
์ด๋ค ์ํฉ์์๋ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์
์ ๋ณ์๋ฅผ ๊ฐ์ฒด ํํ๋ก ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ
์๋๋ฐ, ์ด๋ ๊ธฐ๋ณธํ ํ์
์ ๊ฐ์ฒด๋ก ํฌ์ฅํ ํ์๊ฐ ์๋ค.
Integer wrapper = new Integer(10);
int num = wrapper.intValue();
๊ธฐ๋ณธ ์๋ฃํ๊ณผ Wrapper ํด๋์ค ๊ฐ์๋ ์๋ก ์๋ฌต์ ํ๋ณํ์ด ๊ฐ๋ฅํ๋ค.
AutoBoxing์ Wrapper ํด๋์ค ํ์
์ ๊ธฐ๋ณธ๊ฐ์ด ๋์
๋ ๊ฒฝ์ฐ,
AutoUnBoxing์ ๊ธฐ๋ณธ ํ์
์ wrapper class์ ๊ฐ์ฒด๊ฐ ๋์
๋ ๊ฒฝ์ฐ ๋ฐ์ํ๋ค.
int num = 100;
Integer wrpper = num; // ์๋ ๋ฐ์ฑ (AutoBoxing)
-----------------------------------------------------------------
Integer wrapper2 = new Integer(200);
int num = wrapper2; // ์๋ ์ธ๋ฐ์ฑ (AutoUnBoxing)
int max = Integer.MAX_VALUE;
int min = Integer.MIN_VALUE;
wrapper ํด๋์ค์ ๊ฐ์ฅ ์ค์ํ ๊ธฐ๋ฅ์ ๊ธฐ๋ณธ ์๋ฃํ์ ๋ชจ์์ ๋๊ณ ์๋
๋ฌธ์์ด ๋ฐ์ดํฐ๋ฅผ ์ค์ ๊ธฐ๋ณธ ์๋ฃํ์ผ๋ก ๋ณํ์ํค๋ ๊ธฐ๋ฅ์ด๋ค.
๋๋ถ๋ถ์ wrapper ํด๋์ค์๋ 'parse + ๊ธฐ๋ณธํ์
' ๋ฉ์๋๋ฅผ ์ด์ฉํด
๋ฌธ์์ด์ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ๊ธฐ๋ณธ ํ์
๊ฐ์ผ๋ก ๋ณํํ๋ค.
โ ์ฝ๋ ์์
public class Main {
public static void main(String[] args) {
String a = "20";
String b = "3.14";
System.out.println(a + b);
System.out.println("-------------------------------------");
// ํ๋ณํ
int num_a = Integer.parseInt(a);
float num_b = Float.parseFloat(b);
System.out.println(num_a + num_b);
System.out.println("-------------------------------------");
}
}
๐ ์คํ ๊ฒฐ๊ณผ
203.14
-------------------------------------
23.14
๋ณํ๋ ๊ฐ์ ์ฌ์น์ฐ์ฐ์ด ๊ฐ๋ฅํ๋ค.
๋ํ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ๊ณผ ๊ฐ์ฒดํ ๋ ๋ฐ์ดํฐ๋ ์๋ก ์ฐ์ฐ์ด ๊ฐ๋ฅํ๋ค.
int v1 = num_a + 500;
float v2 = num_b + 500;
System.out.println("v1 = " + v1);
System.out.println("v2 = " + v2);
System.out.println("-------------------------------------");
// ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ๊ฐ์ฒดํ
Integer i = new Integer(500);
int j = i + 300;
System.out.println("j = " + j);
๐ ์คํ ๊ฒฐ๊ณผ
v1 = 520
v2 = 503.14
-------------------------------------
j = 800
Wrapper ํด๋์ค์ ๊ฐ์ฒด๋ ๋ด๋ถ์ ๊ฐ์ ๋น๊ตํ๋ ๊ฒ์ด ์๋๋ผ ๊ฐ์ฒด์
์ ์กฐ๋ฅผ ๋น๊ตํ๊ธฐ ๋๋ฌธ์ ==์ != ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
๊ทธ๋ฌ๋ฏ๋ก ์ง์ ๋ด๋ถ ๊ฐ์ ์ธ๋ฐ์ฑํด์ ๋น๊ตํ๊ฑฐ๋, equals() ๋ฉ์๋๋ก
๋ด๋ถ ๊ฐ์ ๋น๊ตํด์ผ ํ๋ค.
Wrapper ํด๋์ค๋ค์ ๋ชจ๋ equals()๊ฐ ์ค๋ฒ๋ผ์ด๋ฉ๋์ด ์์ด์ ์ฃผ์๊ฐ์ด ์๋ ๊ฐ์ฒด๊ฐ
๊ฐ์ง๊ณ ์๋ ๊ฐ์ ๋น๊ตํ ์ ์๋ค.
โ ์ฝ๋ ์์
public class Main {
public static void main(String[] args) {
Integer a = new Integer(200);
Integer b = new Integer(200);
System.out.println("equals() ๊ฒฐ๊ณผ : " + a.equals(b));
}
}
๐ ์คํ ๊ฒฐ๊ณผ
equals() ๊ฒฐ๊ณผ : true
์ด๋ ๊ฒ equals()๋ฅผ ์ด์ฉํ ๋ Integer๊ฐ์ฒด์ ๋น๊ต๊ฒฐ๊ณผ๊ฐ ture๋ผ๋ ๊ฒ์ ์ ์ ์๋ค.