Skip to content

Latest commit

ย 

History

History
45 lines (25 loc) ยท 1.54 KB

[Java] Wrapper Class.md

File metadata and controls

45 lines (25 loc) ยท 1.54 KB

Wrapper Class

๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์„ ๊ฐ์ฒด ํƒ€์ž…์˜ ์ž๋ฃŒํ˜•์œผ๋กœ ๋ณ€ํ™˜์ด ํ•„์š”ํ•  ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

  • ์‚ฌ์šฉ ์šฉ๋„

    • ๊ฐ์ฒด๋กœ ์ €์žฅํ•ด์•ผ ํ•  ๊ฒฝ์šฐ
    • ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๊ฐ์ฒด๊ฐ€ ์š”๊ตฌ๋  ๊ฒฝ์šฐ(ex. ์ œ๋„ค๋ฆญ, Collection์˜ ํƒ€์ž…)
    • ๊ฐ์ฒด ๊ฐ„์˜ ๋น„๊ต๊ฐ€ ํ•„์š”ํ•  ๊ฒฝ์šฐ
    • ์ œ๋„ค๋ฆญ์ด๋‚˜ ์ปฌ๋ ‰์…˜์—์„œ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ๊ธฐ๋ณธํ˜•์„ ์“ธ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ Wrappingํ•œ ํ˜•ํƒœ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
  • ํŠน์ง•

    • ์‚ฐ์ˆ  ์—ฐ์‚ฐ์„ ์œ„ํ•œ ํด๋ž˜์Šค๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— Immutableํ•˜๋‹ค.(๋ถˆ๋ณ€)
    • ๋ถˆ๋ณ€ ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ’์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ  ์ƒˆ๋กœ์šด ๊ฐ’(๊ฐ์ฒด)์˜ ํ• ๋‹น์ด๋‚˜ ์ฐธ์กฐ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.
    • Boxing : ๊ธฐ๋ณธ ์ž๋ฃŒํ˜• -> Wrapper Class
    • UnBoxing : Wrapper Class -> ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•
    • JDK 1.5๋ถ€ํ„ฐ ์˜คํ†  ๋ฐ•์‹ฑ, ์˜คํ†  ์–ธ๋ฐ•์‹ฑ์„ ์ง€์›ํ•œ๋‹ค.
    • ์–ธ๋ฐ•์‹ฑ ์‹œ ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์†Œ๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋ฅผ ๊ฐ–๋Š”๋‹ค.
      • intValue : ๊ฐ์ฒด -> int ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜.

๋ฌธ์ž๋ฅผ ์ˆซ์ž๋กœ ๋ฐ”๊พธ๊ฑฐ๋‚˜, ์ˆซ์ž๋ฅผ ๋ฌธ์ž๋กœ ๋ฐ”๊ฟ€ ๋•Œ ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹์˜ ์ฐจ์ด์ ์ด ์กด์žฌํ•œ๋‹ค.

[Code]

// ๋ฌธ์ž์—ด -> ๊ธฐ๋ณธํ˜•
int number1 = Integer.parseInt("100");

// ๋ฌธ์ž์—ด -> wrapper class
Integer number2 = Integer.valueOf("100");

์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด, JDK 1.5๋ถ€ํ„ฐ ์˜คํ†  ๋ฐ•์‹ฑ๊ณผ ์˜คํ†  ์–ธ๋ฐ•์‹ฑ์ด ์ง€์›๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜ํ™˜๊ฐ’์ด ๊ธฐ๋ณธํ˜•์ด๋“ , wrapper class์ด๋“  ์ฐจ์ด๊ฐ€ ์—†์–ด์กŒ๋‹ค. ๊ทธ๋ž˜์„œ ๊ตณ์ด ๊ตฌ๋ณ„ํ•˜์ง€ ์•Š๊ณ  valueOf()๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค.

๋‹จ, ์„ฑ๋Šฅ์„ ๋น„๊ตํ•˜๋ฉด valueOf()๊ฐ€ ์กฐ๊ธˆ ๋” ๋Š๋ฆฌ๋‹ค๊ณ  ํ•œ๋‹ค.