OOP
OOP์ 3์์๋ ์บก์ํ, ์์, ๋คํ์ฑ์ด๋ค.
OOP์ 3์์๋ ์บก์ํ, ์์, ๋คํ์ฑ์ด๋ค. ์บก์ํ๋ ํด๋์ค ๋ด๋ถ ๋ฐ์ดํฐ์ ์ก์ธ์คํ๋ ๊ฒ์ ํ์ฉํ์ง ์๊ณ ๋ฉ์๋๋ฅผ ํตํด์๋ง ์ก์ธ์ค๋ฅผ ํ์ฉํ๋ ๊ฒ์ ๋งํ๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๊ธฐ ์ํด ์ธ๋ถ์๋ ๋ถํ์ํ๊ฑฐ๋ ๋ด๋ถ์ ์ผ๋ก๋ง ์ฌ์ฉ๋๋ ๋ถ๋ถ์ ๊ฐ์ถ๊ธฐ ์ํด ํน์ ์์ฑ์ด๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ ์ ์๋๋ก ์๋ํํ ๊ฒ์ด๋ค. ํ๋์ ๋ฉ์๋๋ฅผ ์บก์ํํ์ฌ ๋ณดํธํ๋ ์ด์ ๋ ์ธ๋ถ์ ์๋ชป๋ ์ฌ์ฉ์ผ๋ก ์ธํ ๊ฐ์ฒด์ ์์์ ๋ฐฉ์งํ๊ธฐ ์ํจ์ด๋ค. ์ ๊ทผ ์์ค ๋ช ์๊ฐ๋ฅ : ์ ๊ทผ์ ์ด์[private/public/protected]๋ฅผ ํตํด์ ์บก์ํ๋ ๋ฉค๋ฒ๋ฅผ ๋ ธ์ถํ ์ง ์จ๊ธธ์ง ๊ฒฐ์ ํ ์ ์๋ค. ์บก์ํ์ ์ฅ์ : ๊ฐ์ฒด ์ ๊ณต์์ ์ด์ฉ์๋ฅผ ์ ํํ๊ฒ ๋๋์ด ์ ๋ณด ์ํ, ๋ณด์ ๋ฑ์์ ์ฅ์ ์ ๊ฐ์ง๋ค. ๊ฐ์ฒด ๋ด์ ๋ฐ์ดํฐ๊ฐ ๋ฐ๋์ด๋ ๋ค๋ฅธ ๊ฐ์ฒด์๋ ์ํฅ์ ์ฃผ์ง์๊ณ ..
OOP์์์ ์ถ์ํด๋์ค VS ์ธํฐํ์ด์ค (C#์์ฃผ์ด์ง๋ง C++ ๊ฐ๋ ํ์คํผ ์์ธ ๊ธ)
*ํ์ต์ ์ํด ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค. ํ๋ฆฐ ๋ถ๋ถ์ด ์๋ค๋ฉด ์ง์ ํด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค! [ ์ถ์ํด๋์ค์ ์ธํฐํ์ด์ค์ ์ฐจ์ด ] ์ถ์ํด๋์ค๋ IS - A "~์ด๋ค". ์ธํฐํ์ด์ค๋ HAS - A "~์ ํ ์ ์๋". ์ถ์ ํด๋์ค VS ์ธํฐํ์ด์ค ์ถ์ ํด๋์ค๋ ์ด๋ฅผ ์์ํ ๊ฐ ๊ฐ์ฒด๋ค์ ๊ณตํต์ ์ ์ฐพ์ ์ถ์ํ์์ผ ๋์ ๊ฒ์ผ๋ก, ์์ ๊ด๊ณ๋ฅผ ํ๊ณ ์ฌ๋ผ๊ฐ์ ๋ ๊ฐ์ ๋ถ๋ชจ ํด๋์ค๋ฅผ ์์ํ๋ฉฐ ๋ถ๋ชจ ํด๋์ค๊ฐ ๊ฐ์ง ๊ธฐ๋ฅ๋ค์ ๊ตฌํํด์ผํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ค. ์ธํฐํ์ด์ค๋ ์์ ๊ด๊ณ๋ฅผ ํ๊ณ ์ฌ๋ผ๊ฐ์ ๋ ๋ค๋ฅธ ์กฐ์ ํด๋์ค๋ฅผ ์์ํ๋๋ผ๋, ๊ฐ์ ๊ธฐ๋ฅ์ด ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ค. ํด๋์ค์ ๋ณ๋๋ก ๊ตฌํ ๊ฐ์ฒด๊ฐ ๊ฐ์ ๋์์ ํ๋ค๋ ๊ฒ์ ๋ณด์ฅํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค. ์ถ์ํด๋์ค(abstract) ์ธํฐํ์ด์ค ๋จ์ผ ์์๋ง์ด ๊ฐ๋ฅํ๋ค ๋ค์ค ์์์ด ๊ฐ๋ฅํ๋ค ๋ชจ๋ ์ ..