๊ธ€ ์ž‘์„ฑ์ž: ์ด์ง€์›๐ŸŒฉ๏ธ

๊ฐ์ฒด์ง€ํ–ฅ ๊ธฐ๋ฒ•์˜ ๊ฐœ์š”

ํ˜„์‹ค ์„ธ๊ณ„์˜ ๊ฐ์ฒดEntity๋ฅผ ํ•˜๋‚˜์˜ ๊ฐ์ฒดObject๋กœ ๋งŒ๋“ค์–ด, ๊ฐ์ฒด๋“ค์„ ์กฐ๋ฆฝํ•ด์„œ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ๋ฒ•

  • ์†Œํ”„ํŠธ์›จ์–ด์˜ ์žฌ์‚ฌ์šฉ
  • ์ƒ์‚ฐ์„ฑ ํ–ฅ์ƒ
  • ์œ ์ง€๋ณด์ˆ˜ ์šฉ์ด

 

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํŠน์ง•

์ƒ์†Inheritance

์ด๋ฏธ ์ •์˜๋œ ํด๋ž˜์Šค(๋ถ€๋ชจ ํด๋ž˜์Šค)์˜ ๋ชจ๋“  ์†์„ฑ๊ณผ ์—ฐ์‚ฐ์„ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๊ฐ€ ๋ฌผ๋ ค๋ฐ›๋Š” ๊ฒƒ.

  • ์ด ๋•Œ ์†์„ฑ๊ณผ ์—ฐ์‚ฐ์„ ๋ฌผ๋ ค๋ฐ›์€ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ํ•˜์œ„ ํด๋ž˜์Šค, ์ž์‹ ํด๋ž˜์Šค๋ผ๊ณ  ํ•จ.

 

์บก์Šํ™”Encapsulation

  • ๊ฐ์ฒด์˜ ์†์„ฑ๊ณผ ํ–‰์œ„๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ๋Š”๋‹ค.
  • ์‹ค์ œ ๊ตฌํ˜„ ๋‚ด์šฉ ์ผ๋ถ€๋ฅผ ์™ธ๋ถ€์— ๊ฐ์ถ”์–ด ์€๋‹‰ํ•œ๋‹ค.

 

๋‹คํ˜•์„ฑPolymorphism

๋ฉ”์†Œ๋“œ ์˜ค๋ฒ„๋ผ์ด๋”ฉMethod Overriding

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

๋ฉ”์†Œ๋“œ ์˜ค๋ฒ„๋กœ๋”ฉMethod Overloading

๋™์ผํ•œ ์ด๋ฆ„์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋‹ฌ๋ฆฌ ๊ตฌ์„ฑํ•˜์—ฌ ์ •์˜ํ•˜๋Š” ๊ฒƒ.

 

๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ

๊ฐ์ฒด Object

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

ํด๋ž˜์ŠคClass

  • ๊ณตํ†ต๋œ ์†์„ฑ๊ณผ ์—ฐ์‚ฐ(ํ–‰์œ„)์„ ๊ฐ–๋Š” ๊ฐ์ฒด์˜ ์ง‘ํ•ฉ
  • ๊ฐ๊ฐ์˜ ๊ฐ์ฒด๋“ค์ด ๊ฐ–๋Š” ์†์„ฑ๊ณผ ์—ฐ์‚ฐ์„ ์ •์˜ํ•˜๊ณ  ์žˆ๋Š” ํ‹€
  • ์ธ์Šคํ„ด์ŠคInstance
    • ํด๋ž˜์Šค์— ์†ํ•œ ๊ฐ๊ฐ์˜ ๊ฐ์ฒด
    • ์ปดํ“จํ„ฐ ์ €์žฅ๊ณต๊ฐ„์—์„œ ํ• ๋‹น๋œ ์‹ค์ฒด
  • ์ธ์Šคํ„ด์Šคํ™”Instantiation
    • ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ
  • ์ตœ์ƒ์œ„ ํด๋ž˜์Šค
    • ์ƒ์œ„ ํด๋ž˜์Šค๋ฅผ ๊ฐ–์ง€ ์•Š๋Š” ์œ ์ผํ•œ ํด๋ž˜์Šค
    • Java์˜ Object ํด๋ž˜์Šค
  • ์Šˆํผ ํด๋ž˜์ŠคSuper Class
    • ํŠน์ • ํด๋ž˜์Šค์˜ ์ƒ์œ„(๋ถ€๋ชจ) ํด๋ž˜์Šค
    • Java์˜ Object ํด๋ž˜์Šค๋Š” ๋ชจ๋“  ์ž๋ฐ” ํด๋ž˜์Šค์˜ ์Šˆํผ ํด๋ž˜์Šค
    • ๋ชจ๋“  ์ž๋ฐ” ํด๋ž˜์Šค๋“ค์ด Object ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›๊ณ  ์žˆ์Œ
  • ์„œ๋ธŒ ํด๋ž˜์ŠคSub Class
    • ํŠน์ • ํด๋ž˜์Šค์˜ ํ•˜์œ„(์ž์‹) ํด๋ž˜์Šค

๋ฉ”์‹œ์ง€Message

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