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

IT’s Portfolio

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

Development Study/Java

[Java] Lecture - Day 5

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

๐Ÿ–ฅ Basic Java - Day 5

๐Ÿ‘‰๐Ÿป [Chapter 04] ํด๋ž˜์Šค์™€ ๊ฐ์ฒด

์‹ค์„ธ๊ณ„ ๊ฐ์ฒด

  • ์‹ค์„ธ๊ณ„ ๊ฐ์ฒด์˜ ํŠน์ง•
    • ๊ฐ์ฒด๋งˆ๋‹ค ๊ณ ์œ ํ•œ ํŠน์„ฑ๊ณผ ํ–‰๋™์„ ๊ฐ€์ง
    • ๋‹ค๋ฅธ ๊ฐ์ฒด๋“ค๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•˜๋ฉด์„œ ์‚ด์•„๊ฐ
  • ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ฐ์ฒด ์‚ฌ๋ก€
    • ํ…ŒํŠธ๋ฆฌ์Šค ๊ฒŒ์ž„์˜ ๊ฐ ๋ธ”๋ก๋“ค
    • ํ•œ๊ธ€ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฉ”๋‰ด๋‚˜ ๋ฒ„ํŠผ๋“ค

์ž๋ฐ”์˜ ๊ฐ์ฒด ์ง€ํ–ฅ ํŠน์„ฑ

  • ์บก์Šํ™”(Encapsulation) : ๊ฐ์ฒด๋ฅผ ์บก์Š๋กœ ์‹ธ์„œ ๋‚ด๋ถ€๋ฅผ ๋ณผ ์ˆ˜ ์—†๊ฒŒ ํ•˜๋Š” ๊ฒƒ
    • ๊ฐ์ฒด์˜ ๊ฐ€์žฅ ๋ณธ์งˆ์ ์ธ ํŠน์ง•
      • ์™ธ๋ถ€์˜ ์ ‘๊ทผ์œผ๋กœ๋ถ€ํ„ฐ ๊ฐ์ฒด ๋ณดํ˜ธ
    • ์ž๋ฐ”์˜ ์บก์Šํ™”
      • class : ๊ฐ์ฒด ๋ชจ์–‘์„ ์„ ์–ธํ•œ ํ‹€(์บก์Šํ™” ํ‹€)
      • ๊ฐ์ฒด : ์ƒ์„ฑ๋œ ์‹ค์ฒด(instance)
        • ํด๋ž˜์Šค ๋‚ด์— ๋ฉ”์†Œ๋“œ์™€ ํ•„๋“œ ๊ตฌํ˜„
  • ์ƒ์†(Inheritance)
    • ์ƒ์œ„ ๊ฐœ์ฒด์˜ ์†์„ฑ์ด ํ•˜์œ„ ๊ฐœ์ฒด์—๊ฒŒ ๋ฌผ๋ ค์ง
      • ํ•˜์œ„ ๊ฐœ์ฒด๊ฐ€ ์ƒ์œ„ ๊ฐœ์ฒด์˜ ์†์„ฑ์„ ๋ชจ๋‘ ๊ฐ€์ง€๋Š” ๊ด€๊ณ„
    • ์ž๋ฐ”์˜ ์ƒ์†
      • ์ƒ์œ„ ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„๋ฅผ ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ๋ฌผ๋ ค๋ฐ›์Œ
        • ์ƒ์œ„ ํด๋ž˜์Šค : super class
        • ํ•˜์œ„ ํด๋ž˜์Šค : sub class, super class ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ, ์ƒˆ๋กœ์šด ํŠน์„ฑ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ
  • ๋‹คํ˜•์„ฑ(Polymorphism)
    • ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ฉ”์†Œ๋“œ๊ฐ€ ํด๋ž˜์Šค ํ˜น์€ ๊ฐ์ฒด์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ๊ตฌํ˜„๋˜๋Š” ๊ฒƒ
      • Method Overloading : ํ•œ ํด๋ž˜์Šค ๋‚ด์—์„œ ๊ฐ™์€ ์ด๋ฆ„์ด์ง€๋งŒ ๋‹ค๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋Š” ์—ฌ๋Ÿฌ ๋ฉ”์†Œ๋“œ
      • Method Overriding : ์Šˆํผ ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ๋™์ผํ•œ ์ด๋ฆ„์œผ๋กœ ์„œ๋ธŒ ํด๋ž˜์Šค๋งˆ๋‹ค ๋‹ค๋ฅด๊ฒŒ ๊ตฌํ˜„

๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด์˜ ๋ชฉ์ 

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

์ ˆ์ฐจ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

  • ์ ˆ์ฐจ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
    • ์ž‘์—… ์ˆœ์„œ์„ ํ‘œํ˜„ํ•˜๋Š” ์ปดํ“จํ„ฐ ๋ช…๋ น ์ง‘ํ•ฉ
    • ํ•จ์ˆ˜๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ
  • ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
    • ์ปดํ“จํ„ฐ๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์„ ๊ฐ์ฒด๋“ค๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์œผ๋กœ ํ‘œํ˜„
    • ํด๋ž˜์Šค ํ˜น์€ ๊ฐ์ฒด๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ

ํด๋ž˜์Šค์™€ ๊ฐ์ฒด

  • Class
    • ๊ฐ์ฒด์˜ ์†์„ฑ๊ณผ ํ–‰์œ„ ์„ ์–ธ
    • ๊ฐ์ฒด์˜ ์„ค๊ณ„๋„ ํ˜น์€ ํ‹€
      • Class๋Š” ๊ฐ์ฒด์˜ ํƒ€์ž…
    • ์†์„ฑ -> ๋ฉค๋ฒ„ ๋ณ€์ˆ˜(ํ•„๋“œ), ํ–‰๋™ -> ๋ฉค๋ฒ„ ๋ฉ”์†Œ๋“œ(ํ•จ์ˆ˜) ๊ตฌํ˜„
  • ๊ฐ์ฒด(Object)
    • ํด๋ž˜์Šค์˜ ํ‹€๋กœ ์ฐ์–ด๋‚ธ ์‹ค์ฒด
      • ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ ์ƒ์„ฑ๋˜๋Š” ์‹ค์ฒด
      • ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๊ฐ–๋Š” ๊ตฌ์ฒด์ ์ธ ์‹ค์ฒด
      • instance๋ผ๊ณ ๋„ ๋ถ€๋ฆ„

์ž๋ฐ” ํด๋ž˜์Šค ๊ตฌ์„ฑ

  • Class
    • class ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธ
    • ๋ฉค๋ฒ„ : ํด๋ž˜์Šค ๊ตฌ์„ฑ ์š”์†Œ, {} ์•ˆ์— ์ž‘์„ฑ
      • ํ•„๋“œ(๋ฉค๋ฒ„ ๋ณ€์ˆ˜)์™€ ๋ฉ”์†Œ๋“œ(๋ฉค๋ฒ„ ํ•จ์ˆ˜)
    • ์ ‘๊ทผ ์ง€์ •์ž
      • ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์ ‘๊ทผ ์ง€์ •
        • public : ๋‹ค๋ฅธ ๋ชจ๋“  ํด๋ž˜์Šค์—์„œ ํด๋ž˜์Šค ์‚ฌ์šฉ ํ—ˆ๋ฝ
      • ๋ฉค๋ฒ„์— ๋Œ€ํ•œ ์ ‘๊ทผ ์ง€์ •
        • public : ๋‹ค๋ฅธ ๋ชจ๋“  ํด๋ž˜์Šค์—๊ฒŒ ๋ฉค๋ฒ„ ์ ‘๊ทผ ํ—ˆ์šฉ

๊ฐ์ฒด์˜ ์ƒ์„ฑ๊ณผ ํ™œ์šฉ

  • ๋ ˆํผ๋Ÿฐ์Šค ๋ณ€์ˆ˜ ์„ ์–ธ
    • ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ๋ ˆํผ๋Ÿฐ์Šค ๋ณ€์ˆ˜ ์„ ์–ธ
  • ๊ฐ์ฒด ์ƒ์„ฑ
    • new ์—ฐ์‚ฐ์ž ์ด์šฉ
    • ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋ฐ›์•„ ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•œ ๋ ˆํผ๋Ÿฐ์Šค ๋ฆฌํ„ด
  • ๊ฐ์ฒด ๋ฉค๋ฒ„ ์ ‘๊ทผ
    • . ์—ฐ์‚ฐ์ž ์ด์šฉ
728x90
๋ฐ˜์‘ํ˜•

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

[Java] Lecture - Day 7  (0) 2023.12.12
[Java] Lecture - Day 6  (0) 2023.12.12
[Java] Lecture - Day 4  (0) 2023.12.12
[Java] Lecture - Day 3  (0) 2023.12.12
[Java] Lecture - Day 1~2  (0) 2023.12.12
Comments