250x250
Rainbow๐ŸŒˆCoder
My dev Note๐Ÿ“’
Rainbow๐ŸŒˆCoder
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (411)
    • ๊ณต์ง€์‚ฌํ•ญ (0)
    • Debugger (10)
      • Visual Studio Debugger (1)
      • Chrome DevTools (3)
      • Visual Studio Code Debugger (4)
      • eclipse (1)
      • intelliJ (1)
    • OOP (2)
      • OOP (2)
    • TypeScript (54)
      • ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ TypeScript (54)
    • Javascript (87)
      • Javascript (45)
      • Node.js (19)
      • React (5)
      • FE ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ค์ • (3)
      • React์™€ Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ (6)
      • next.js (2)
      • pixi.js (7)
    • ๋งˆํฌ์—… (23)
      • Html & Css (23)
    • C# (80)
      • C# (12)
      • ์ด๊ฒƒ์ด C#์ด๋‹ค (68)
    • C++ (30)
      • c++ (27)
      • win api (3)
    • Unity (18)
      • Unity(๊ธฐ์ดˆ) (8)
      • Unity(C#์ค‘๊ธ‰) (5)
      • ์œ ๋‹ˆํ‹ฐ ํฌํ†ค(๋„คํŠธ์›Œํฌ) (4)
      • unity c# MyCode (1)
    • Java & Spring (29)
      • Java (11)
      • ์Šคํ”„๋ง (8)
      • Java Algorithm (9)
      • Javs Data Structures (1)
    • ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (15)
      • ์ž๋ฃŒ๊ตฌ์กฐ (5)
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜ (10)
    • ํ˜•์ƒ๊ด€๋ฆฌ (15)
      • Git (11)
      • ์†Œ์ŠคํŠธ๋ฆฌ (3)
    • ๊ทธ๋ž˜ํ”ฝ์Šค (7)
      • WebGl (7)
    • AWS (3)
      • aws (3)
    • ๋ฆฌ๋ˆ…์Šค (5)
      • ๋ฆฌ๋ˆ…์Šค (5)
    • ์ฑ… ๋ฆฌ๋ทฐ (13)
      • ํด๋ฆฐ์ฝ”๋“œ(์ฑ…๋ฆฌ๋ทฐ) (3)
      • ์œ ์ง€๋ณด์ˆ˜๊ฐ€๋Šฅํ•œ์ฝ”๋”ฉ์˜๊ธฐ์ˆ C#ํŽธ(์ฑ…๋ฆฌ๋ทฐ) (1)
      • ๋ฆฌํŒฉํ† ๋ง(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธํŒ) (9)
    • Server (2)
      • ๊ฒŒ์ž„ ์„œ๋ฒ„(๋„คํŠธ์›Œํฌ, ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ,OS) (2)
    • ์„ค๊ณ„, ์•„ํ‚คํ…์ณ (4)
    • ํŒŒ์ด์ฌ (5)
    • ๋””์ž์ธํŒจํ„ด (2)
    • mocha (2)
    • Jest (1)
    • Spine (1)
    • ์ธ๊ณต์ง€๋Šฅ (1)
      • ํ˜ผ์ž๊ณต๋ถ€ํ•˜๋Š”๋จธ์‹ ๋Ÿฌ๋‹+๋”ฅ๋Ÿฌ๋‹ (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ใ…ฃใ„ท
  • ์œ„์ž„
  • MySQL
  • ์ปดํฌ์ง€์…˜

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
Rainbow๐ŸŒˆCoder

My dev Note๐Ÿ“’

OOP/OOP

OOP์—์„œ์˜ ์ถ”์ƒํด๋ž˜์Šค VS ์ธํ„ฐํŽ˜์ด์Šค (C#์œ„์ฃผ์ด์ง€๋งŒ C++ ๊ฐœ๋… ํ•œ์Šคํ‘ผ ์„ž์ธ ๊ธ€)

2022. 1. 19. 12:37
728x90

*ํ•™์Šต์„ ์œ„ํ•ด ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ํ‹€๋ฆฐ ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ์ง€์ ํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

 

 


[ ์ถ”์ƒํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ฐจ์ด ]

์ถ”์ƒํด๋ž˜์Šค๋Š” IS - A "~์ด๋‹ค".

์ธํ„ฐํŽ˜์ด์Šค๋Š” HAS - A "~์„ ํ•  ์ˆ˜ ์žˆ๋Š”".

์ถ”์ƒ ํด๋ž˜์Šค VS ์ธํ„ฐํŽ˜์ด์Šค

์ถ”์ƒ ํด๋ž˜์Šค๋Š” ์ด๋ฅผ ์ƒ์†ํ•  ๊ฐ ๊ฐ์ฒด๋“ค์˜ ๊ณตํ†ต์ ์„ ์ฐพ์•„ ์ถ”์ƒํ™”์‹œ์ผœ ๋†“์€ ๊ฒƒ์œผ๋กœ,
์ƒ์† ๊ด€๊ณ„๋ฅผ ํƒ€๊ณ  ์˜ฌ๋ผ๊ฐ”์„ ๋•Œ ๊ฐ™์€ ๋ถ€๋ชจ ํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•˜๋ฉฐ
๋ถ€๋ชจ ํด๋ž˜์Šค๊ฐ€ ๊ฐ€์ง„ ๊ธฐ๋Šฅ๋“ค์„ ๊ตฌํ˜„ํ•ด์•ผํ•  ๊ฒฝ์šฐ ์‚ฌ์šฉํ•œ๋‹ค.

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

 

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

[ ์ถ”์ƒํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ณตํ†ต์  ]


1. ์ƒ์†๋ฐ›์€ ์ž์‹ ํด๋ž˜์Šค ์•ˆ์—์„œ ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•˜๋„๋ก ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ฐ•์ œํ•œ๋‹ค.

2. ์ธ์Šคํ„ด์Šคํ™”๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์ƒ์†๋ฐ›์€ ํด๋ž˜์Šค์˜ ์ •์ฒด์„ฑ์€ ์ถ”์ƒํด๋ž˜์Šค ์ƒ์†์„ ํ†ตํ•ด ๋งŒ๋“ค์–ด์ฃผ๊ณ ,

์ƒ์†๋ฐ›์€ ํด๋ž˜์Šค๋“ค์ด ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ๋“ค์€ ์ธํ„ฐํŽ˜์ด์Šค ์ƒ์†์„ ํ†ตํ•ด ๊ตฌํ˜„ํ•œ๋‹ค.

 

 

 

 

์œ„์— ์š”์•ฝ์„ ์จ๋†“๊ธฐ๋Š” ํ–ˆ์ง€๋งŒ

์ถ”์ƒํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ฐจ์ด๋ฅผ ์„œ์ˆ ์‹์œผ๋กœ ํ’€์–ด์จ๋ณด๊ณ ์ž ํ•œ๋‹ค.

์ž ์‹œ OOP์˜ ๊ฐœ๋…๋ถ€ํ„ฐ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ๊ฐ€๋ณด๊ฒ ๋‹ค.

 

OOP(Object-Oriented Programming)์ด๋ž€ ๊ฐ์ฒด์ง€ํ–ฅ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋œปํ•œ๋‹ค.

 

OOP๋Š” ์‰ฝ๊ฒŒ ๋งํ•˜์ž๋ฉด, ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ํ˜„์‹ค ์„ธ๊ณ„ ์‚ฌ๋ฌผ์„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ์˜ฎ๊ฒจ์„œ ์ž‘์„ฑํ•œ๋‹ค๋Š” ๊ฐœ๋…์ด๋‹ค.

ํ˜„์‹ค ์„ธ๊ณ„์˜ ์‚ฌ๋ฌผ๋“ค์„ ๊ฐ์ฒด๋กœ ๋ชจ๋ธ๋งํ•˜์—ฌ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•œ๋‹ค๋Š” ๋œป์€,

๊ฐ์ฒด๋กœ๋ถ€ํ„ฐ ๊ฐœ๋ฐœํ•˜๊ณ ์ž ํ•˜๋Š” ํŠน์ง•๊ณผ ๊ธฐ๋Šฅ์„ ๋ฝ‘์•„์™€ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

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

์ด๋ ‡๊ฒŒ ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•  ๋•Œ, ์ตœ์†Œํ•œ์˜ ๊ณตํ†ต ์š”์†Œ๋‚˜ ํ•„์ˆ˜์ ์ธ ์š”์†Œ๋งŒ์„ ์ถ”์ถœํ•˜๋Š” ๊ฒƒ์„ '์ถ”์ƒํ™”'๋ผ๊ณ  ํ•œ๋‹ค.

 

์ด๋ ‡๊ฒŒ ์ถ”์ƒํ™”ํ•œ ํด๋ž˜์Šค ๋ฉค๋ฒ„๋ฅผ ์ž์‹ ํด๋ž˜์Šค์— ๊ณตํ†ตํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์ƒ์†์ด๋‹ค.

(์ƒ์†์€ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๊ฒŒ ํ•˜๊ณ , ์ค‘๋ณต๋˜๋Š” ์ฝ”๋“œ๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.)

๋ถ€๋ชจ ํด๋ž˜์Šค ๋‚ด์˜ ํ•จ์ˆ˜๋ฅผ ์ž์‹ ํด๋ž˜์Šค์— ๋งž์ถ”์–ด ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆํ•˜๋Š” ๊ฒƒ์„ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์ด๋ผ๊ณ  ํ•œ๋‹ค.

ํ•ญ์ƒ ์˜ค๋ฒ„๋ผ์ด๋“œํ•œ ์ž์‹ ํด๋ž˜์Šค์˜ ํ•จ์ˆ˜๋“ค๋งŒ์„ ํ˜ธ์ถœํ•  ๊ฒƒ์ด ์ž๋ช…ํ•œ ๊ฒฝ์šฐ์— ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ํ•จ์ˆ˜๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ์ž‘์„ฑํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค! C++์˜ ๊ฒฝ์šฐ, ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋Š” ๋‚ด๋ถ€๊ฐ€ ์—†์ด ๋‹จ์ง€ ์กด์žฌํ•˜๊ธฐ๋งŒ ํ•˜๋Š” ํ•จ์ˆ˜์ธ ์ˆœ์ˆ˜ ๊ฐ€์ƒ ํ•จ์ˆ˜๋กœ ์ž‘์„ฑํ•œ๋‹ค. ์ˆœ์ˆ˜ ๊ฐ€์ƒ ํ•จ์ˆ˜๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š” ํด๋ž˜์Šค๋ฅผ ํŠน๋ณ„ํžˆ '์ถ”์ƒ ํด๋ž˜์Šค'๋ผ๊ณ  ์ผ์ปซ๋Š”๋‹ค.(์ฐธ๊ณ  : ์ฝ”๋”ฉ์˜ ์‹œ์ž‘, TCP School) ์ˆœ์ˆ˜ ๊ฐ€์ƒ ํ•จ์ˆ˜(C#์—์„œ ์ถ”์ƒํ™” ํด๋ž˜์Šค์˜ ์ถ”์ƒํ™” ํ•จ์ˆ˜)๋Š” ์˜๋„ ์ž์ฒด๊ฐ€ ๋ฉค๋ฒ„ ํ•จ์ˆ˜๊ฐ€ ๋ฐ˜๋“œ์‹œ ์ž์‹ ํด๋ž˜์Šค ๋‚ด์—์„œ ์˜ค๋ฒ„๋ผ์ด๋“œ ๋  ๋•Œ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž์‹ ํด๋ž˜์Šค์—์„œ ์žฌ์ •์˜ ํ•˜์ง€ ์•Š์œผ๋ฉด ์ปดํŒŒ์ผ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ C++์—์„œ๋Š” ๊ตฌํ˜„๋ถ€ ์—†์ด ์ž์‹ํด๋ž˜์Šค์—์„œ ๋ฐ˜๋“œ์‹œ ๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ˆœ์ˆ˜๊ฐ€์ƒํ•จ์ˆ˜๋ผ๊ณ  ๋ถˆ๋ €๋‹ค.
C#์—์„œ๋Š” ์ถ”์ƒ(abstract)ํ•จ์ˆ˜๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ ์ถ”์ƒํ•จ์ˆ˜๋ฅผ ํฌํ•จํ•˜๋Š” ํด๋ž˜์Šค์— abstract ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ถ”์ƒ ํด๋ž˜์Šค๋ผ๊ณ  ๋ช…์‹œํ•ด์•ผํ•œ๋‹ค.

 

์ถ”์ƒํด๋ž˜์Šค์˜ ์ž‘์„ฑ์€

'์ด ํด๋ž˜์Šค๋กœ๋Š” ์ง์ ‘ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๊ณ , ์ƒ์†ํ•ด์„œ ๋ฐ›์€ ์ž์†๋“ค์ด ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ฑฐ์˜ˆ์š”~

c# ์ถ”์ƒ๋ฉ”์„œ๋“œ(c++์ˆœ์ˆ˜๊ฐ€์ƒํ•จ์ˆ˜)๋Š” ์ž์† ํด๋ž˜์Šค์—์„œ ์˜ค๋ฒ„๋ผ์ด๋“œํ•ด์„œ ๊ตฌํ˜„ํ•˜์„ธ์š”!' ๋ผ๊ณ  ๊ณตํ‘œํ•˜๋Š” ๊ฒƒ์ด ๋œ๋‹ค.

์ฐธ๊ณ : C/C++ ๊ฐœ๋ฐœ์ž์˜ C# ๋ฐฐ์šฐ๊ธฐ - ๊ฐ€์ƒํ•จ์ˆ˜, ์ˆœ์ˆ˜๊ฐ€์ƒํ•จ์ˆ˜, ์ถ”์ƒํด๋ž˜์Šค (tistory.com)

 

๊ทธ์•ผ๋ง๋กœ ์ƒ์†ํ•˜๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค์ด๋‹ค.

 

class ์•ž์— "abstract" ์˜ˆ์•ฝ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์†์„ ํ†ตํ•ด์„œ ๊ตฌํ˜„ํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ ค์ฃผ๊ณ 

์„ ์–ธ๋ถ€๋งŒ ์ž‘์„ฑํ•˜๋Š” ์ถ”์ƒ๋ฉ”์„œ๋“œ๋ฅผ ์„ ์–ธํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์ฝ”๋“œ ํ‘œ๊ธฐ ๋ฐฉ์‹์ด๋‹ค.

 

 

์ธํ„ฐํŽ˜์ด์Šค๋Š” ์กฐ๊ธˆ ๋…ํŠนํ•œ ํด๋ž˜์Šค์ด๋‹ค.

์ถ”์ƒ ํด๋ž˜์Šค๋ณด๋‹ค ์ถ”์ƒํ™” ์ •๋„๊ฐ€ ๋†’์•„
์ถ”์ƒ ํด๋ž˜์Šค๊ฐ€ ํ•ต์‹ฌ ๊ณตํ†ต ๋ณธ์งˆ์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ์ ‘๊ทผ์ง€์ •์ž๋ฅผ ๊ฐ€์ง„ ์ผ๋ฐ˜ ๋ฉ”์„œ๋“œ, ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋ฅผ ๊ตฌ์„ฑ์›์œผ๋กœ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋ฐ˜๋ฉด์—

์ธํ„ฐํŽ˜์ด์Šค๋Š” public ์ถ”์ƒ ๋ฉ”์†Œ๋“œ๋งŒ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

~able๋กœ ๋๋‚˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋“ค์ด ๋งŽ๋‹ค. 

ํด๋ž˜์Šค์™€ ๋‹ค๋ฅด๊ฒŒ ๋‹ค์ค‘ ์ƒ์†์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

<์„ค๊ณ„ ์˜ˆ์‹œ>

 

๋™๋ฌผ(๋ฌผ๊ณ ๊ธฐ, ํ† ๋ผ) ๊ทธ๋ฆฌ๊ณ  ์šฉ์‚ฌ(์ „์‚ฌ, ๋งˆ๋ฒ•์‚ฌ)๊ฐ€ ์žˆ๋Š” ๋ฌด์ธ๋„ ๊ฒŒ์ž„์„ ๋งŒ๋“ ๋‹ค๊ณ  ๊ฐ€์ •์„ ํ•ด๋ณด๊ฒ ๋‹ค.

 

์—ฌ๋Ÿฌ ๋ช…์˜ ํ”Œ๋ ˆ์ด์–ด๋“ค์ด ์ „์‚ฌ, ๋งˆ๋ฒ•์‚ฌ ์ค‘์—์„œ ์ง์—…์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.

์ง์บ๋ฆฌ๋Š” ์ „์‚ฌ๋กœ ๋กœ๊ทธ์ธ, ๋‹ˆ์ฝœํ‚ค๋“œ๋จผ์€ ๋งˆ๋ฒ•์‚ฌ๋กœ ๋กœ๊ทธ์ธํ–ˆ๋‹ค.

์ „์‚ฌ๋Š” ๋ฌผ์— ๋‹ฟ์œผ๋ฉด ์ˆ˜์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งˆ๋ฒ•์‚ฌ๋Š” ์ˆ˜์˜ํ•  ์ˆ˜ ์—†๋‹ค.

๋ฌผ๊ณ ๊ธฐ๋Š” ํ—ค์—„์น  ์ˆ˜ ์žˆ๋‹ค. ํ† ๋ผ๋Š” ํ—ค์—„ ์น  ์ˆ˜ ์—†๋‹ค.

 

์ด ๋‚ด์šฉ์„ ๊ฐ„๋‹จํžˆ ์„ค๊ณ„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

Chracter์ด๋ผ๋Š” ์ถ”์ƒํด๋ž˜์Šค๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์„œ Warrior์™€ Magician ํด๋ž˜์Šค์— ์ƒ์†ํ•ด์ค€๋‹ค.

Animal์ด๋ผ๋Š” ์ถ”์ƒํด๋ž˜์Šค๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์„œ ๋ฌผ๊ณ ๊ธฐํด๋ž˜์Šค์™€ ํ† ๋ผํด๋ž˜์Šค ๊ฐ๊ฐ์—๊ฒŒ ์ƒ์†ํ•ด์ค€๋‹ค.

Swimable๋ผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์„œ,

Warrior์™€ ๋ฌผ๊ณ ๊ธฐ์—๊ฒŒ๋งŒ ์ƒ์†ํ•ด์ฃผ๋ฉด

์ง์บ๋ฆฌ์™€ ๋ฌผ๊ณ ๊ธฐ๋Š” (๋‹ˆ์ฝœํ‚ค๋“œ๋จผ๊ณผ ํ† ๋ผ์—๊ฒŒ ์–ด๋– ํ•œ ๊ฐ„์„ญ์—†์ด)

ํ—ค์—„์„ ์น  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ

'~ํ•  ์ˆ˜ ์žˆ๋Š”' ์ธํ„ฐํŽ˜์ด์Šค ํ•˜๋‚˜ ์ž˜ ๋งŒ๋“ค์–ด์„œ ์ƒ์†๋ฐ›์€ ์ถ”์ƒํด๋ž˜์Šค(is a)๊ฐ€ ๋‹ค๋ฅธ ํด๋ž˜์Šค์— ์ฒ™์ฒ™ ๋ถ™์ผ ์ˆ˜ ์žˆ์„ ๋ฟ๋”๋ผ

์ถ”์ƒํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์€ ํด๋ž˜์Šค ์•„๋ž˜์—์„œ๋„ ํŠน์ • ๊ธฐ๋Šฅ์„ ๋ฝ๋‚ผ ์ˆ˜ ์žˆ๋Š” ์ž์‹ ํด๋ž˜์Šค์—๊ฒŒ๋งŒ ๋ถ™์—ฌ์ค„ ์ˆ˜ ์žˆ๋‹ค.

'

 

์ถ”์ƒํด๋ž˜์Šค๋Š” ์ตœ์ƒ๋‹จ ๊ณตํ†ต ๋ณธ์งˆ์„ ์ •์˜ํ•˜๋Š” ์šฉ,

์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ตœ์ƒ๋‹จ ์กฐ์ƒํด๋ž˜์Šค๊ฐ€ ๊ฐ™์œผ๋‚˜ ๋‹ค๋ฅด๋‚˜ ํŠน์ • ๊ธฐ๋Šฅ์„ ํ•ด์•ผํ•  ๊ฒฝ์šฐ ๋ถ™์—ฌ์ฃผ๋ฉด ์šฉ๋„๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

728x90

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

OOP์˜ 3์š”์†Œ๋Š” ์บก์Аํ™”, ์ƒ์†, ๋‹คํ˜•์„ฑ์ด๋‹ค.  (0) 2022.01.19
    'OOP/OOP' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • OOP์˜ 3์š”์†Œ๋Š” ์บก์Аํ™”, ์ƒ์†, ๋‹คํ˜•์„ฑ์ด๋‹ค.
    Rainbow๐ŸŒˆCoder
    Rainbow๐ŸŒˆCoder
    ๋ชฐ๋ผ๋„ ๊ฒฐ๊ตญ์€ ์•„๋Š” ๊ฐœ๋ฐœ์ž, ๊ทธ๋Ÿฐ ์‚ฌ๋žŒ์ด ๋˜๊ธฐ ์œ„ํ•œ ๋งค์ผ์˜ ํ•œ๊ฑธ์Œ

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”