Skip to content

Latest commit

ย 

History

History
125 lines (75 loc) ยท 3.99 KB

File metadata and controls

125 lines (75 loc) ยท 3.99 KB

OOP(Object-Oriented-Programing) ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

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



โญ์žฅ์ โญ

  1. ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ ์šฉ์ด : ์ƒ์†์„ ํ†ตํ•ด ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.

  2. ์œ ์ง€๋ณด์ˆ˜์˜ ์šฐ์ˆ˜์„ฑ : ์บก์Šํ™”๋ฅผ ํ†ตํ•ด ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฝ๋‹ค.

  3. ๋Œ€ํ˜• ํ”„๋กœ์ ํŠธ ์ ํ•ฉ : ํด๋ž˜์Šค ๋‹จ์œ„๋กœ ๋ชจ๋“ˆํ™” ๊ฐœ๋ฐœ๋กœ ์—…๋ฌด ๋ถ„๋‹ด



๐Ÿ˜จ๋‹จ์ ๐Ÿ˜จ

  1. ๊ฐœ๋ฐœ์†๋„๊ฐ€ ๋Š๋ฆฐ ์  : ๊ฐ์ฒด๊ฐ€ ์ฒ˜๋ฆฌํ•˜๋ ค๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ์ •ํ™•ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”

  2. ์‹คํ–‰์†๋„๊ฐ€ ๋Š๋ฆฐ ์  : ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๊ฐ€ ๋Œ€์ฒด์ ์œผ๋กœ ์‹คํ–‰์†๋„๊ฐ€ ๋Š๋ฆผ

  3. ์ฝ”๋”ฉ ๋‚œ์ด๋„ ์ƒ์Šน : ๋‹ค์ค‘ ์ƒ์†๊ณผ ๊ฐ™์€ ์ด์œ ๋กœ ๋ณต์žก๋„ ์ƒ์Šน



ํŠน์ง•

1. ๐Ÿฅ์บก์Šํ™”๐Ÿฅ

๋ฐ์ดํ„ฐ์™€ ์ฝ”๋“œ์˜ ํ˜•ํƒœ๋ฅผ ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ์•Œ ์ˆ˜ ์—†๊ฒŒ ํ•˜๊ณ , 
๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ์™€ ์—ญํ• , ๊ธฐ๋Šฅ์„ ํ•˜๋‚˜์˜ ์บก์Š ํ˜•ํƒœ๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•
์ฆ‰, ๋‚ฎ์€ ๊ฒฐํ•ฉ๋„๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„ํ•˜๋Š” ๊ฒƒ

2. โ˜๏ธ์ถ”์ƒํ™”โ˜๏ธ

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

3. ๐Ÿ™‡์ƒ์†๐Ÿ™‡

๋ถ€๋ชจ ํด๋ž˜์Šค์— ์ •์˜๋œ ๋ณ€์ˆ˜ ๋ฐ ๋ฉ”์„œ๋“œ๋ฅผ ์ž์‹ ํด๋ž˜์Šค์—์„œ ์ƒ์†๋ฐ›์•„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ

4. ๐ŸŽ…๋‹คํ˜•์„ฑ๐ŸŽ…

ํ”„๋กœ๊ทธ๋žจ ์–ธ์–ด์˜ ๋‹คํ˜•์„ฑ์€ ๊ทธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ์ž๋ฃŒํ˜• ์ฒด๊ณ„์˜ ์„ฑ์งˆ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์œผ๋กœ,
ํ”„๋กœ๊ทธ๋žจ ์–ธ์–ด์˜ ๊ฐ ์š”์†Œ๋“ค(์ƒ์ˆ˜, ๋ณ€์ˆ˜, ์‹, ์˜ค๋ธŒ์ ํŠธ, ํ•จ์ˆ˜, ๋ฉ”์†Œ๋“œ ๋“ฑ)์ด
๋‹ค์–‘ํ•œ ์ž๋ฃŒํ˜•(type)์— ์†ํ•˜๋Š” ๊ฒƒ์ด ํ—ˆ๊ฐ€๋˜๋Š” ์„ฑ์งˆ์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค. 
๋ฐ˜๋Œ“๋ง์€ ๋‹จํ˜•์„ฑ์œผ๋กœ, ํ”„๋กœ๊ทธ๋žจ ์–ธ์–ด์˜ ๊ฐ ์š”์†Œ๊ฐ€ ํ•œ๊ฐ€์ง€ ํ˜•ํƒœ๋งŒ ๊ฐ€์ง€๋Š” ์„ฑ์งˆ์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค.

-> ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด , ๋‹คํ˜•์„ฑ์ด๋ž€ ํ•˜๋‚˜์˜ ๊ฐ์ฒด์— ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ํƒ€์ž…์„ ๋Œ€์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค


๋‹คํ˜•์„ฑ์„ ๊ตฌ๋ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ•


  1. ์˜ค๋ฒ„๋กœ๋”ฉ
    ๋ฉ”์†Œ๋“œ ์˜ค๋ฒ„๋กœ๋”ฉ์€ ํ•œ ํด๋ž˜์Šค ๋‚ด์— ์ด๋ฏธ ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฆ„์˜ ๋ฉ”์†Œ๋“œ๊ฐ€ ์žˆ๋”๋ผ๋„
    ํŠน์ • ๊ทœ์น™์„ ์ง€ํ‚จ๋‹ค๋ฉด ๋™์ผํ•œ ์ด๋ฆ„์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์ •์˜ํ•˜๋„๋ก ํ—ˆ์šฉํ•˜๋Š” ๊ธฐ์ˆ ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ํŠน์ • ๊ทœ์น™์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
1. ๋ฉ”์†Œ๋“œ์˜ ์ด๋ฆ„์ด ๊ฐ™์•„์•ผ ํ•œ๋‹ค.

 
2. ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜ ๋˜๋Š” ํƒ€์ž…์ด ๋‹ฌ๋ผ์•ผ ํ•œ๋‹ค.

 
3. ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ๊ฐ™๊ณ , ๋ฆฌํ„ด ํƒ€์ž…์ด ๋‹ค๋ฅผ ๋•Œ๋Š” ์„ฑ๋ฆฝํ•˜์ง€ ์•Š๋Š”๋‹ค.

 
4. ์˜ค๋ฒ„๋กœ๋”ฉ๋œ ๋ฉ”์†Œ๋“œ๋“ค์€ ๋งค๊ฐœ ๋ณ€์ˆ˜๋กœ๋งŒ ๊ตฌ๋ถ„๋  ์ˆ˜ ์žˆ๋‹ค.

  1. ์˜ค๋ฒ„๋ผ์ด๋”ฉ
    ๋ฉ”์†Œ๋“œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์€ ์ƒ์œ„ ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
    ์ฃผ๋กœ, ํด๋ž˜์Šค ์ƒ์†์ด๋‚˜ ์ธํ„ฐํŽ˜์ด์Šค ์ƒ์†์„ ํ†ตํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
์กฐ๊ฑด

1. ์˜ค๋ฒ„๋ผ์ด๋”ฉ์ด๋ž€ ๋ฉ”์†Œ๋“œ์˜ ๋™์ž‘๋งŒ์„ ์žฌ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ,
   ๋ฉ”์†Œ๋“œ์˜ ์„ ์–ธ๋ถ€๋Š” ๊ธฐ์กด ๋ฉ”์†Œ๋“œ์™€ ์™„์ „ํžˆ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ํ•˜์ง€๋งŒ ๋ฉ”์†Œ๋“œ์˜ ๋ฐ˜ํ™˜ ํƒ€์ž…์€ ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ๋ฐ˜ํ™˜ ํƒ€์ž…์œผ๋กœ 
    ํƒ€์ž… ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ํƒ€์ž…์ด๋ผ๋ฉด ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ๋ณด๋‹ค ์ ‘๊ทผ ์ œ์–ด์ž๋ฅผ ๋” ์ข์€ ๋ฒ”์œ„๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

3. ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ๋ณด๋‹ค ๋” ํฐ ๋ฒ”์œ„์˜ ์˜ˆ์™ธ๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ž๋ฐ”์—์„œ ์บก์Šํ™”๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฒ•

1. ์ ‘๊ทผ์ œ์–ด์ž(access modifiers)๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. 
์ ‘๊ทผ์ œ์–ด์ž๋Š” ํด๋ž˜์Šค ๋˜๋Š” ํด๋ž˜์Šค์˜ ๋‚ด๋ถ€์˜ ๋ฉค๋ฒ„๋“ค์— ์‚ฌ์šฉ๋˜์–ด ํ•ด๋‹น ํด๋ž˜์Šค๋‚˜
๋ฉค๋ฒ„๋“ค์„ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ์ ‘๊ทผ์„ ์ œํ•œํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.