๊ด€๋ฆฌ ๋ฉ”๋‰ด

IT’s Portfolio

[Java] Lecture - Day 7 ๋ณธ๋ฌธ

Development Study/Java

[Java] Lecture - Day 7

f1r3_r41n 2023. 12. 12. 01:04
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ–ฅ Basic Java - Day 7

๊ฐ์ฒด ์น˜ํ™˜ ์‹œ ์ฃผ์˜ํ•  ์ 

  • ๊ฐ์ฒด ์น˜ํ™˜์€ ๊ฐ์ฒด ๋ณต์‚ฌ๊ฐ€ ์•„๋‹ˆ๋ฉฐ, ๋ ˆํผ๋Ÿฐ์Šค์˜ ๋ณต์‚ฌ์ž„

๊ฐ์ฒด ์†Œ๋ฉธ

  • new์— ์˜ํ•ด ํ• ๋‹น ๋ฐ›์€ ๊ฐ์ฒด์™€ ๋ฐฐ์—ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์„ ์œผ๋กœ ๋˜๋Œ๋ ค ์ฃผ๋Š” ํ–‰์œ„
  • ์†Œ๋ฉธ๋œ ๊ฐ์ฒด ๊ณต๊ฐ„์€ ๊ฐ€์šฉ ๋ฉ”๋ชจ๋ฆฌ์— ํฌํ•จ
  • ์ž๋ฐ”์—์„œ ์‚ฌ์šฉ์ž ์ž„์˜๋กœ ๊ฐ์ฒด ์†Œ๋ฉธ ์•ˆ๋จ
    • ์ž๋ฐ”๋Š” ๊ฐ์ฒด ์†Œ๋ฉธ ์—ฐ์‚ฐ์ž๊ฐ€ ์—†์Œ
      • ๊ฐ์ฒด ์ƒ์„ฑ ์—ฐ์‚ฐ์ž : new
    • ๊ฐ์ฒด ์†Œ๋ฉธ์€ ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ ์˜ ๊ณ ์œ ํ•œ ์—ญํ• 
      • C/Cpp์—์„œ๋Š” ํ• ๋‹น ๋ฐ›์€ ๊ฐ์ฒด๋ฅผ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ ์‚ญ์ œํ•ด์•ผ ํ•จ
      • C/Cpp์˜ ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ์„ ์–ด๋ ต๊ฒŒ ๋งŒ๋“œ๋Š” ์š”์ธ
      • ์ž๋ฐ”์—์„œ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฐ์ฒด๋‚˜ ๋ฐฐ์—ด์„ ๋Œ๋ ค์ฃผ๋Š” ์ฝ”๋”ฉ ์ฑ…์ž„์œผ๋กœ๋ถ€ํ„ฐ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ•ด๋ฐฉ๋จ

๊ฐ€๋น„์ง€(garbage)

  • ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ํ•˜๋‚˜๋„ ์—†๋Š” ๊ฐ์ฒด
    • ๋” ์ด์ƒ ์ ‘๊ทผํ•  ์ˆ˜ ์—†์–ด ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋œ ๋ฉ”๋ชจ๋ฆฌ

๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜

  • ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ ์ด ๊ฐ€๋น„์ง€๋ฅผ ์ž๋™์œผ๋กœ ์ˆ˜์ง‘, ๋ฐ˜ํ™˜
    • ๊ฐ€์šฉ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ์ผ์ • ์ดํ•˜๋กœ ๋ถ€์กฑํ•ด์งˆ ๋•Œ
    • ๊ฐ€๋น„์ง€๋ฅผ ์ˆ˜๊ฑฐํ•˜์—ฌ ๊ฐ€์šฉ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์œผ๋กœ ํ™•๋ณด
  • ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ(garbage collector)์— ์˜ํ•ด ์ž๋™ ์ˆ˜ํ–‰
  • ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ ๊ฐ•์ œ ์ˆ˜ํ–‰
    • System.gc();
      • System ๋˜๋Š” Runtime ๊ฐ์ฒด์˜ gc() ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ
      • ์ด ์ฝ”๋“œ๋Š” ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ ์— ๊ฐ•๋ ฅํ•œ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ ์š”์ฒญ
      • ๊ทธ๋Ÿฌ๋‚˜ ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ ์ด ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ ์‹œ์ ์„ ์ „์ ์œผ๋กœ ํŒ๋‹จ

์ž๋ฐ”์˜ ํŒจํ‚ค์ง€ ๊ฐœ๋…

  • ํŒจํ‚ค์ง€
    • ์ƒํ˜ธ ๊ด€๋ จ ์žˆ๋Š” ํด๋ž˜์Šค ํŒŒ์ผ(์ปดํŒŒ์ผ๋œ .class)์„ ์ €์žฅํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ
    • ์ž๋ฐ” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ํ•˜๋‚˜ ์ด์ƒ์˜ ํŒจํ‚ค์ง€๋กœ ๊ตฌ์„ฑ

์ ‘๊ทผ ์ง€์ •์ž

  • private, protected, public, default(์ ‘๊ทผ ์ง€์ •์ž ์ƒ๋žต)
  • ์ ‘๊ทผ ์ง€์ •์ž์˜ ๋ชฉ์ 
    • ํด๋ž˜์Šค๋‚˜ ์ผ๋ถ€ ๋ฉค๋ฒ„๋ฅผ ๊ณต๊ฐœํ•˜์—ฌ ๋‹ค๋ฅธ ํด๋ž˜์Šค์—์„œ ์ ‘๊ทผํ•˜๋„๋ก ํ—ˆ์šฉ
    • ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด์˜ ์บก์Šํ™” ์ •์ฑ…์€ ๋ฉค๋ฒ„๋ฅผ ๋ณดํ˜ธํ•˜๋Š” ๊ฒƒ
      • ์ ‘๊ทผ ์ง€์ •์€ ์บก์Šํ™”์— ๋ฌถ์ธ ๋ณดํ˜ธ๋ฅผ ์ผ๋ถ€ ํ•ด์ œํ•  ๋ชฉ์ 
  • ์ ‘๊ทผ ์ง€์ •์ž์— ๋”ฐ๋ฅธ ํด๋ž˜์Šค๋‚˜ ๋ฉค๋ฒ„์˜ ๊ณต๊ฐœ ๋ฒ”์œ„
    • private : ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ์™„๋ฒฝํ•˜๊ฒŒ ์ฐจ๋‹จ
    • default : ๋™์ผ ํŒจํ‚ค์ง€์— ํ—ˆ์šฉ
    • protected : ๋™์ผ ํŒจํ‚ค์ง€์™€ ์ž์‹ ํด๋ž˜์Šค์— ํ—ˆ์šฉ
    • public : ๋ชจ๋“  ํด๋ž˜์Šค์— ํ—ˆ์šฉ

ํด๋ž˜์Šค ์ ‘๊ทผ ์ง€์ •

  • ๋‹ค๋ฅธ ํด๋ž˜์Šค์—์„œ ์‚ฌ์šฉํ•˜๋„๋ก ํ—ˆ์šฉํ•  ์ง€ ์ง€์ •
  • public ํด๋ž˜์Šค
    • ๋‹ค๋ฅธ ๋ชจ๋“  ํด๋ž˜์Šค์—๊ฒŒ ์ ‘๊ทผ ํ—ˆ์šฉ
  • default ํด๋ž˜์Šค
    • package-private๋ผ๊ณ ๋„ ํ•จ
    • ๊ฐ™์€ ํŒจํ‚ค์ง€์˜ ํด๋ž˜์Šค์—๋งŒ ์ ‘๊ทผ ํ—ˆ์šฉ

๋ฉค๋ฒ„ ์ ‘๊ทผ ์ง€์ •

  • public
    • ํŒจํ‚ค์ง€์— ๊ด€๊ณ„ ์—†์ด ๋ชจ๋“  ํด๋ž˜์Šค์—๊ฒŒ ์ ‘๊ทผ ํ—ˆ์šฉ
  • private
    • ๋™์ผ ํด๋ž˜์Šค ๋‚ด์—๋งŒ ์ ‘๊ทผ ํ—ˆ์šฉ
    • ์ƒ์† ๋ฐ›์€ ์„œ๋ธŒ ํด๋ž˜์Šค์—์„œ ์ ‘๊ทผ ๋ถˆ๊ฐ€
  • protected
    • ๊ฐ™์€ ํŒจํ‚ค์ง€ ๋‚ด์˜ ๋‹ค๋ฅธ ๋ชจ๋“  ํด๋ž˜์Šค์—๊ฒŒ ์ ‘๊ทผ ํ—ˆ์šฉ
    • ์ƒ์† ๋ฐ›์€ ์„œ๋ธŒ ํด๋ž˜์Šค๋Š” ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์— ์žˆ์–ด๋„ ์ ‘๊ทผ ๊ฐ€๋Šฅ
  • default
    • ๊ฐ™์€ ํŒจํ‚ค์ง€ ๋‚ด์˜ ๋‹ค๋ฅธ ๋ชจ๋“  ํด๋ž˜์Šค์—๊ฒŒ ์ ‘๊ทผ ํ—ˆ์šฉ

๋ฉค๋ฒ„ ๋ณ€์ˆ˜์˜ ์ดˆ๊ธฐํ™”

  • ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋Š” ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ์–ด์„œ ์ดˆ๊ธฐํ™”ํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉ ๊ฐ€๋Šฅ
    • ์ง€์—ญ๋ณ€์ˆ˜ : ์ดˆ๊ธฐํ™”ํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉํ•˜๋ฉด ์—๋Ÿฌ

static ๋ฉค๋ฒ„

  • ํด๋ž˜์Šค๋‹น ํ•˜๋‚˜ ์ƒ์„ฑ
    • ๋ฉค๋ฒ„๋Š” ๊ฐ์ฒด ๋‚ด๋ถ€๊ฐ€ ์•„๋‹Œ ๋ณ„๋„์˜ ๊ณต๊ฐ„์— ์ƒ์„ฑ
    • ํด๋ž˜์Šค ๋ฉค๋ฒ„๋ผ๊ณ  ๋ถ€๋ฆ„
  • ํด๋ž˜์Šค ๋กœ๋”ฉ ์‹œ์— ๋ฉค๋ฒ„ ์ƒ์„ฑ
    • ๊ฐ์ฒด๊ฐ€ ์ƒ๊ธฐ๊ธฐ ์ „์— ์ด๋ฏธ ์ƒ์„ฑ
    • ๊ฐ์ฒด๊ฐ€ ์ƒ๊ธฐ๊ธฐ ์ „์—๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
    • ๊ฐ์ฒด๊ฐ€ ์‚ฌ๋ผ์ ธ๋„ ๋ฉค๋ฒ„๋Š” ์‚ฌ๋ผ์ง€์ง€ ์•Š์Œ
    • ๋ฉค๋ฒ„๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋  ๋•Œ ์‚ฌ๋ผ์ง
  • ๋™์ผํ•œ ํด๋ž˜์Šค์˜ ๋ชจ๋“  ๊ฐ์ฒด๋“ค์— ์˜ํ•ด ๊ณต์œ ๋จ
  • static ํ™œ์šฉ
    • ์ „์—ญ ๋ณ€์ˆ˜์™€ ์ „์—ญ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค ๋•Œ ํ™œ์šฉ
    • ๊ณต์œ  ๋ฉค๋ฒ„๋ฅผ ๋งŒ๋“ค๊ณ ์ž ํ•  ๋•Œ

non-static ๋ฉค๋ฒ„

  • ๋ฉค๋ฒ„๋Š” ๊ฐ์ฒด๋งˆ๋‹ค ๋ณ„๋„ ์กด์žฌ
    • ์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„๋ผ๊ณ  ๋ถ€๋ฆ„
  • ๊ฐ์ฒด ์ƒ์„ฑ ์‹œ์— ๋ฉค๋ฒ„ ์ƒ์„ฑ๋จ
    • ๊ฐ์ฒด๊ฐ€ ์ƒ๊ธธ ๋•Œ ๋ฉค๋ฒ„๋„ ์ƒ์„ฑ
    • ๊ฐ์ฒด ์ƒ์„ฑ ํ›„ ๋ฉค๋ฒ„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
    • ๊ฐ์ฒด๊ฐ€ ์‚ฌ๋ผ์ง€๋ฉด ๋ฉค๋ฒ„๋„ ์‚ฌ๋ผ์ง
  • ๊ณต์œ ๋˜์ง€ ์•Š์Œ
    • ๋ฉค๋ฒ„๋Š” ๊ฐ์ฒด ๋‚ด์— ๊ฐ๊ฐ ๊ณต๊ฐ„ ์œ ์ง€

static ๋ฉ”์†Œ๋“œ์˜ ์ œ์•ฝ ์กฐ๊ฑด

  • static ๋ฉ”์†Œ๋“œ๋Š” ์˜ค์ง static ๋ฉค๋ฒ„๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ
    • ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š์€ ์ƒํ™ฉ์—์„œ๋„ static ๋ฉ”์†Œ๋“œ๋Š” ์‹คํ–‰๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, non-static ๋ฉค๋ฒ„ ํ™œ์šฉ ๋ถˆ๊ฐ€
    • non-static ๋ฉ”์†Œ๋“œ๋Š” static ๋ฉค๋ฒ„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • static ๋ฉ”์†Œ๋“œ๋Š” this ์‚ฌ์šฉ ๋ถˆ๊ฐ€
    • static ๋ฉ”์†Œ๋“œ๋Š” ๊ฐ์ฒด ์—†์ด๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ, this ๋ ˆํผ๋Ÿฐ์Šค ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ

final

  • final ํด๋ž˜์Šค : ๋” ์ด์ƒ ํด๋ž˜์Šค ์ƒ์† ๋ถˆ๊ฐ€๋Šฅ
  • final ๋ฉ”์†Œ๋“œ : ๋” ์ด์ƒ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ๋ถˆ๊ฐ€๋Šฅ
  • final ํ•„๋“œ : ์ƒ์ˆ˜ ์„ ์–ธ ์‹œ ์‚ฌ์šฉ
    • ์„ ์–ธ ์‹œ ์ดˆ๊ธฐ ๊ฐ’ ๋ฐ˜๋“œ์‹œ ์ง€์ •
    • ์‹คํ–‰ ์ค‘ ๊ฐ’ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅ
728x90
๋ฐ˜์‘ํ˜•

'Development Study > Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Java] Lecture - Day 9  (1) 2023.12.12
[Java] Lecture - Day 8  (0) 2023.12.12
[Java] Lecture - Day 6  (0) 2023.12.12
[Java] Lecture - Day 5  (0) 2023.12.12
[Java] Lecture - Day 4  (0) 2023.12.12
Comments