- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
- ๊ฐ์ฒด์ ๊ด์ (๊ฐ์ฒด๋ฅผ ๊ธฐ์ค)์์ ํ๋ก๊ทธ๋๋ฐ
- ๊ฐ "๊ฐ์ฒด"๋ค์ ์๋ก ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์์ผ๋ฉฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅ
- ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํ๋ ์์๋ค์ ๊ฐ์ฒด๋ก ๋ฐ๋ผ๋ณด๊ณ , ๊ฐ์ฒด๋ค์ ์ ๊ธฐ์ ์ผ๋ก ์ฐ๊ฒฐํ์ฌ ํ๋ก๊ทธ๋๋ฐ ํ๋ ๊ฒ.
- ํ๋ก๊ทธ๋จ์ด ์ ์ฐํ๊ณ ๋ณ๊ฒฝ์ด ์ฉ์ด
- ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐ๊ณผ ๋ณด์๊ฐ ๊ฐํธํ๋ค
- ์ฝ๋๊ฐ ์ง๊ด์ ์ด๋ค
- ๊ฐํ ์์ง๋ ต๊ณผ ์ฝํ ๊ฒฐํฉ๋ ฅ
- ์์ง๋ ฅ : ํ๋ก๊ทธ๋จ์ ํ ์์๊ฐ ํด๋น ๊ธฐ๋ฅ์ ์ํํ๊ธฐ ์ํด ์ผ๋ง๋งํผ์ ์ฐ๊ด๋ ์ฑ ์๊ณผ ์์ด๋์ด๊ฐ ๋ญ์ณ์๋์ง๋ฅผ ๋ํ๋ด๋ ์ ๋. ํ๋ก๊ทธ๋จ์ ํ ์์๊ฐ ํน์ ๋ชฉ์ ์ ์ํด ๋ฐ์ ํ๊ฒ ์ฐ๊ด๋ ๊ธฐ๋ฅ๋ค์ด ๋ชจ์ฌ์ ๊ตฌํ๋์ด ์๊ณ , ์ง๋์น๊ฒ ๋ง์ ์ผ์ ํ์ง ์์๋ ์์ง๋ ฅ์ด ๋๋ค๊ณ ํ๋ค.
- ๊ฒฐํฉ๋ ฅ : ํ๋ก๊ทธ๋จ ์ฝ๋์ ํ ์์๊ฐ ๋ค๋ฅธ ๊ฒ๊ณผ ์ผ๋ง๋ ๊ฐ๋ ฅํ๊ฒ ์ฐ๊ฒฐ๋์ด ์๋์ง, ์ผ๋ง๋ ์์กด์ ์ด์ง๋ฅผ ๋ํ๋ด๋ ์ ๋. ๊ฒฐํฉ๋ ฅ์ด ๋ฎ๋ค๋ ๊ฒ์ ํ ์์๊ฐ ๋ค๋ฅธ ์์๋ค๊ณผ ๊ด๊ณ๋ฅผ ํฌ๊ฒ ๋งบ๊ณ ์์ง ์์ ์ํ๋ฅผ ์๋ฏธ.
- ํ๋์ ๋ฌธ์ ํด๊ฒฐ์ ์ํด ๋ฐ์ดํฐ๋ฅผ ๋ชจ์ ๋์ ๊ฐ์ฒด๋ฅผ ํ์ฉํ ํ๋ก๊ทธ๋๋ฐ์ ์งํฅ -> ์์ง๋ ฅ ๊ฐํ
- ํด๋์ค ๊ฐ์ ๋ ๋ฆฝ์ ์ผ๋ก ๋์์ธ -> ๊ฒฐํฉ๋ ฅ ์ฝํ
- ํด๋์ค(Class)
- ๊ฐ์ ์ข ๋ฅ์ ์ง๋จ์ ์ํ๋ ์์ฑ๊ณผ ํ์๋ฅผ ์ ์ํ ๊ฒ.
- ๊ฐ์ฒด(Object)
- ํด๋์ค์ ์ธ์คํด์ค(Instance). ์์ ํด๋์ค์ ์์ฑ + ๊ฐ๋ณ์ ํน์ฑ๊ณผ ํ์ (๋ฉ์๋ : Method)
- ๊ฐ์ฒด์ ์ธ์คํด์ค์ ์ฐจ์ด?
- ๊ฐ์ฒด๋ ์ํํธ์จ์ด ์ธ๊ณ์ ๊ตฌํํ ๋์
- ํด๋์ค๋ ๊ฐ์ฒด๋ฅผ ๊ตฌํํ๊ธฐ ์ํ ์ค๊ณ๋
- ์ธ์คํด์ค๋ ์ค๊ณ๋์ ๋ฐ๋ผ ์ํํธ ์ธ๊ณ์ ๊ตฌํ๋ ์ค์ฒด. ์ค์ฒดํ๋ ์ธ์คํด์ค๋ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋น๋๋ค.
- ๋ฉ์๋(Method)
- ํด๋์ค๋ก๋ถํฐ ์์ฑ๋ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ. ๊ฐ์ฒด์ ์์ฑ์ ์กฐ์.
-
์บก์ํ(Encapsulation)
- ํ๋์ ๊ฐ์ฒด์ ๋ํด ๊ทธ ๊ฐ์ฒด๊ฐ ํน์ ํ ๋ชฉ์ ์ ์ํ ํ์ํ ๋ณ์๋ ๋ฉ์๋๋ฅผ ํ๋๋ก ๋ฌถ๋ ๊ฒ.
- ๊ฐ์ฒด์ ๋ฐ์ดํฐ๋ฅผ ์ธ๋ถ์์ ์ง์ ์ ๊ทผํ์ง ๋ชปํ๊ฒ ๋ง๊ณ , ํจ์๋ฅผ ํตํด์๋ง ์กฐ์์ด ๊ฐ๋ฅํ๊ฒ ํ๋ ์์
- ์ธ๋ถ์์ ๋ณ์์ ์ง์ ์ ๊ทผํ์ง ๋ชปํ๊ฒ ํ๋ค / ๋ฉ์๋๋ก๋ง ์กฐ์ ๊ฐ๋ฅ
-
์ถ์ํ(Abstraction)
- ๊ฐ์ฒด๋ค์ด ๊ฐ์ง ๊ณตํต์ ํน์ฑ๋ค์ ํ์ ํ๊ณ ๋ถํ์ํ ํน์ฑ๋ค์ ์ ๊ฑฐํ๋ ๊ณผ์
- ๊ฐ์ฒด๋ค์ด ๊ฐ์ง ๋์๋ค์ ๊ธฐ์ค์ผ๋ก ์ด์ฉ์๋ค์ด ๋์๋ง ์ฝ๊ฒ ๊ตฌ๋ํ ์ ์๊ฒ ํ๋ค.
- ์ด์ฉ์๋ค์ด ๊ฐ์ฒด๋ฅผ ๋ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
- ์์ฑ ์์ฃผ๊ฐ ์๋ ๋์ ์์กฐ ์ฃผ์
- ์ด๋ ํ ๋์๊ณผ ์์ฑ์ ์ ์ํ๊ณ ๋ถํ์ํ ์ ์๋ค์ ์ญ์ ํ์ฌ ์ด์ฉ์๊ฐ ํธ๋ฆฌํ๊ฒ ๊ฐ์ฒด๋ฅผ ์ด์ฉํ ์ ์๊ฒ ํ๋ค
- ์ถ์ํด๋์ค?
-
๋คํ์ฑ(Polymorphism)
- ์์์ ํตํด ๊ธฐ๋ฅ์ ํ์ฅํ๊ฑฐ๋ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
- ํํ๊ฐ ๊ฐ์๋ฐ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ํ๋ ๊ฒ(๊ฐ์ ๋์์ด์ง๋ง ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฌผ์ด ๋์จ๋ค)
- ์ค๋ฒ๋ผ์ด๋ฉ(Overriding)
- ๋ถ๋ชจ ํด๋์ค์์ ์์๋ฐ์ ์์ ํด๋์ค์์ ๋ถ๋ชจํด๋์ค์์ ๋ง๋ค์ด์ง ๋งค์๋๋ฅผ ์์ํด๋์ค์์ ์์ ์ ์ ๋ง๋๋ก ๋ค์ ์ฌ์ ์ํด์ ์ฌ์ฉํ๋ ๊ฒ
- ์ค๋ฒ๋ก๋ฉ(Overloading)
- ๊ฐ์ ์ด๋ฆ์ ๋งค์๋๋ฅผ ์ฌ์ฉํ์ง๋ง ๋งค์๋๋ง๋ค ๋ค๋ฅธ ์ฉ๋๋ก ์ฌ์ฉ๋๋ฉฐ ๊ทธ ๊ฒฐ๊ณผ๋ฌผ๋ ๋ค๋ฅด๊ฒ ๊ตฌํํ ์ ์๊ฒ ๋ง๋๋ ๊ฐ๋
-
์ฌ์ฌ์ฉ์ฑ
- ํ ๋ฒ ์์ฑ๋ ์ฝ๋๋ฅผ ํ์ฉํ์ฌ ๋์ผํ ๊ฐ์ฒด๋ฅผ ๋ง๋ค ์ ์๋ ๊ฒ.
- ์์ฑ์ ํจ์(Constructor) & ํฉํ ๋ฆฌ ํจ์(Factory)
- ์์ฑ์ ํจ์ : new๋ผ๋ ํค์๋์ ํจ๊ป ํจ์๋ฅผ ์คํํ์ ๋, ํด๋น ํจ์์ ์ ์๋ ๋ด์ฉ์ผ๋ก ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๊ฒ
- ํฉํ ๋ฆฌ ํจ์ : ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ ํจ์
-
์์์ฑ
- ์์
- ๊ธฐ์กด ์์ํด๋์ค์ ๊ทผ๊ฑฐํ์ฌ ์๋กญ๊ฒ ํด๋์ค์ ํ์๋ฅผ ์ ์ํ ์ ์๊ฒ ๋์์ฃผ๋ ๊ฐ๋
- ๊ธฐ์กด ํด๋์ค์ ๊ธฐ๋ฅ์ ๊ฐ์ ธ์ ์ฌ์ฌ์ฉํ ์ ์์ผ๋ฉด์๋ ๋์์ ์๋กญ๊ฒ ๋ง๋ ํด๋์ค์ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์๊ฒ ๋ง๋ค์ด์ค๋ค
- ์์์ ์ฝ๋์ ์ค๋ณต์ ์์ ๊ธฐ ์ํจ์๋ ํ์ํ๋ค
- ์์