[JAVA] Wrapper Class

:-)ยท2022๋…„ 4์›” 29์ผ
2

โ˜• JAVA

๋ชฉ๋ก ๋ณด๊ธฐ
11/15
post-thumbnail

๐Ÿ“ Wrapper Class

  • ํฌ์žฅ ํด๋ž˜์Šค(Wrapper Class)๋Š” ํŠน์ • ๊ธฐ๋ณธํ˜• ํƒ€์ž…์„ ๊ฐ์ฒด๋กœ ๋‹ค๋ฃฐ ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.
  • Java๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ง€์›ํ•˜์ง€๋งŒ,
    ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด์„œ ๋งŒ๋“ค์–ด์ง„ ๊ฐ์ฒด๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ์–ด๋–ค ์ƒํ™ฉ์—์„œ๋Š” ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ๋ณ€์ˆ˜๋ฅผ ๊ฐ์ฒด ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€
    ์žˆ๋Š”๋ฐ, ์ด๋•Œ ๊ธฐ๋ณธํ˜• ํƒ€์ž…์„ ๊ฐ์ฒด๋กœ ํฌ์žฅํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.



Wrapper class์˜ ์ข…๋ฅ˜



Boxing & Unboxing

  • Boxing

    • ๊ธฐ๋ณธ ํƒ€์ž…์˜ ๊ฐ’์„ wrapper class์˜ ๊ฐ์ฒด๋กœ ๋งŒ๋“œ๋Š” ๊ณผ์ •
    • wrapper class์˜ ์ƒ์„ฑ์ž ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ’์œผ๋กœ ๊ธฐ๋ณธํƒ€์ž…์˜ ๊ฐ’ ๋˜๋Š”
      ๋ฌธ์ž์—ด์„ ๋„˜๊ฒจ์ฃผ๋ฉด ๋œ๋‹ค.
Integer wrapper = new Integer(10);

  • Unboxing

    • wrapper class์—์„œ ๊ธฐ๋ณธ ํƒ€์ž…์˜ ๊ฐ’์„ ์–ป์–ด๋‚ด๋Š” ๊ณผ์ •
    • ๊ฐ wrapper class๋งˆ๋‹ค ๊ฐ€์ง€๊ณ  ์žˆ๋Š” "๊ธฐ๋ณธํƒ€์ž…๋ช… + Value()" ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ๋œ๋‹ค.
int num = wrapper.intValue();

AutoBoxing & AutoUnBoxing

  • ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•๊ณผ Wrapper ํด๋ž˜์Šค ๊ฐ„์—๋Š” ์„œ๋กœ ์•”๋ฌต์  ํ˜•๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

  • AutoBoxing์€ Wrapper ํด๋ž˜์Šค ํƒ€์ž…์— ๊ธฐ๋ณธ๊ฐ’์ด ๋Œ€์ž…๋  ๊ฒฝ์šฐ,
    AutoUnBoxing์€ ๊ธฐ๋ณธ ํƒ€์ž…์— wrapper class์˜ ๊ฐ์ฒด๊ฐ€ ๋Œ€์ž…๋  ๊ฒฝ์šฐ ๋ฐœ์ƒํ•œ๋‹ค.

int num = 100;
Integer wrpper = num;		// ์ž๋™ ๋ฐ•์‹ฑ (AutoBoxing)
-----------------------------------------------------------------
Integer wrapper2 = new Integer(200);
int num = wrapper2;			// ์ž๋™ ์–ธ๋ฐ•์‹ฑ (AutoUnBoxing)



Wrapper ํด๋ž˜์Šค์˜ static ๋ฐ์ดํ„ฐ

  • ๋ชจ๋“  Wrapper ํด๋ž˜์Šค๋Š” static ๋ฐ์ดํ„ฐ ํ˜•ํƒœ๋กœ Wrapper ํด๋ž˜์Šค์— ๋Œ€์‘๋˜๋Š”
    ์ž๋ฃŒํ˜•์— ๋Œ€ํ•œ ์ตœ์†Œ ๊ฐ’๊ณผ ์ตœ๋Œ€ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
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 ํด๋ž˜์Šค ๊ฐ’ ๋น„๊ต

  • 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๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€