๐Ÿ‘ฉ‍๐Ÿ’ปProgramming

[์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„] Object-oriented programming

taesooya 2022. 7. 29.
๊ฐ์ฒด์ง€ํ–ฅ (Object-oriented programming)

 

1๏ธโƒฃ๊ฐ์ฒด์ง€ํ–ฅ ๋ถ„์„

 

๋น„์ง€๋‹ˆ์Šค๋ฅผ ๊ฐ์ฒด, ์†์„ฑ ๋“ฑ์˜ ๊ฐœ๋ณ„ ์š”์†Œ๋กœ ์ถ”์ƒํ™” ํ•˜๋Š” ๊ธฐ๋ฒ•

  • ํ˜„์‹ค ์„ธ๊ณ„์˜ ๋Œ€์ƒ์ฒด์ธ ๊ฐœ์ฒด๋ฅผ ์†์„ฑ๊ณผ ๋ฉ”์†Œ๋“œ๋กœ ๊ฒฐํ•ฉํ•˜์—ฌ ๊ฐ์ฒด๋กœ ํ‘œํ˜„
  • ๊ฐœ๋ฐœ ๋Œ€์ƒ์„ ๊ธฐ๋Šฅ์ด ์•„๋‹Œ ๊ฐœ์ฒด๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋ฉฐ ๊ฐœ์ฒด ๊ฐ„์˜ ์ƒํ˜ธ ๊ด€๊ณ„๋ฅผ ๋ชจ๋ธ๋งํ•˜๋Š” ๋ฐฉ์‹

2๏ธโƒฃ๊ฐ์ฒด์ง€ํ–ฅ ๊ธฐ๋ฒ•

  • ์ง‘๋‹จํ™” is a part of
    • ํด๋ž˜์Šค ๊ฐ„์˜ ๊ตฌ์กฐ์ ์ธ ์ง‘์•ฝ ๊ด€๊ณ„
    • ํด๋ž˜์Šค A๋Š” ํด๋ž˜์Šค B์™€ ํด๋ž˜์Šค C๋กœ ๊ตฌ์„ฑ๋œ๋‹ค
  • ์ผ๋ฐ˜ํ™” is a
    • ํด๋ž˜์Šค ๊ฐ„์˜ ๊ฐœ๋…์ ์ธ ํฌํ•จ ๊ด€๊ณ„
    • ์ž์‹ ํด๋ž˜์Šค A๋Š” ๋ถ€๋ชจ ํด๋ž˜์Šค B์˜ ์ผ์ข…์ด๋‹ค
  • ์บก์Аํ™”
    • ์†์„ฑ๊ณผ ๋ฉ”์†Œ๋“œ๋Š” ํ•˜๋‚˜๋กœ ๋ฌถ์—ฌ์„œ ๊ฐ์ฒด๋กœ ๊ตฌ์„ฑ๋œ๋‹ค
  • ์ถ”์ƒํ™”
    • ๊ณตํ†ต ์„ฑ์งˆ์„ ์ถ”์ถœํ•˜์—ฌ ์Šˆํผํด๋ž˜์Šค๋กœ ๊ตฌ์„ฑํ•œ๋‹ค
    • ๊ฐ์ฒด ์ค‘์‹ฌ์˜ ์•ˆ์ •๋œ ๋ชจ๋ธ์„ ๊ตฌ์ถ• ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ˜„์‹ค ์„ธ๊ณ„๋ฅผ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ‘œํ˜„

 

2๏ธโƒฃ๊ฐ์ฒด์ง€ํ–ฅ ๊ฐœ๋…

 

  • ์ƒ์† Inheritance
    • ๊ฐ์ฒด๋“ค ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๊ตฌ์ถ•
  • ์บก์Аํ™” Encapsulation
    • ๊ฐ์ฒด์˜ ์†์„ฑ๊ณผ ํ–‰์œ„๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ๊ณ , ์‹ค์ œ ๊ตฌํ˜„ ๋‚ด์šฉ ์ผ๋ถ€๋ฅผ ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ์€๋‹‰
  • ์—ฐ๊ด€ Association
    • ๊ฐ์ฒด ๋˜๋Š” ํด๋ž˜์Šค๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด ๋˜๋Š” ํด๋ž˜์Šค์™€ ์–ด๋–ค ์˜๋ฏธ์˜ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง
  • ํด๋ž˜์Šค Class
    • ํ•˜๋‚˜ ์ด์ƒ์˜ ์œ ์‚ฌํ•œ ๊ฐ์ฒด๋“ค์„ ๋ฌถ๋Š”๋‹ค

๋Œ“๊ธ€