๊ฐ์๋ฅผ ๋ณด๋๋ฐ
์๋ฐ์ ์์๊ฐ๋ ํ๊ณ ๋น์ทํ๊ฑฐ ๊ฐ์๋ฐ
ํจ์๋ฅผ ๋ง๋ค๋ฉด ๋ค๋ฅธ ๋ฉ์๋์์ ์ฌ์ฉ ๊ฐ๋ฅํ๊ณ
์์ ๋ ๋๊ณ ๋ง์?
ํน์ c# ๋น์ ๊ณต์์ธ ์ด๋ณด๊ฐ ๋ณด๊ธฐ ์ข์ ๊ฐ์์์๊น?
์๋ฐ์ ์์๊ฐ๋ ํ๊ณ ๋น์ทํ๊ฑฐ ๊ฐ์๋ฐ
ํจ์๋ฅผ ๋ง๋ค๋ฉด ๋ค๋ฅธ ๋ฉ์๋์์ ์ฌ์ฉ ๊ฐ๋ฅํ๊ณ
์์ ๋ ๋๊ณ ๋ง์?
ํน์ c# ๋น์ ๊ณต์์ธ ์ด๋ณด๊ฐ ๋ณด๊ธฐ ์ข์ ๊ฐ์์์๊น?
์๋์๋ ์๋๋ ์ด๋ฐ์ง๋ฌธ์ ์ฝ๋ฉ์นดํ๊ฐ์ ๋ฌผ์ด๋ด.
์ด๊ฒ ๋ญ์๋ฆฌ์? ์ง๋ฌธ๊ฐ์ ์ง๋ฌธ์ ํด์ผ์ง C#์ด๊ฑด ์๋ฐ๊ฑด ๋๋ค ๊ฐ์ฒด์งํฅ์ธ์ด์ธ๋ฐ ๋๋ค ์์์๋ค ๊ทธ๋ฆฌ๊ณ ํจ์๋ ๋ฉ์๋๋ ๊ฐ์ ๋ง์ธ๋ฐ ํจ์๋ฅผ ๋ค๋ฅธ๋ฉ์๋์ ์ฌ์ฉ๊ฐ๋ฅํ๊ณ ์์ ๋๋ค๋๊ฒ ๋ฌด์จ๋ง์
์์ ๊ธฐ์ด๊ฐ ์๋์ด์๋ ์น๊ตฐ๊ฐ ๋ณด๋ค.. ๊ธ ์ฝ์ด๋ณด๋ ํ๋ก๊ทธ๋๋ฐ ์์ ๋ชจ๋ฅด๋๊ฑฐ๊ฐ์ผ๋ ์ค๋ช ํด์ค ํด๋์ค๋ฅผ ๋ฉ์๋๋ผ๊ณ ํ๋๊ฑฐ๊ฐ์๋ฐ ํจ์๋ ๋ฉ์๋๋ ๊ฐ์๋ง์ด๋ค. ์๋ฌดํผ ์์ ๊ฐ๋ , ๊ทธ๋ฆฌ๊ณ ์์์ด ์ํ์ํ์ง ์ค๋ช ํด์ค๊ฒ
๋๊ฐ ๋ง์ฝ ์ฌ๋ฌ์ข ๋ฅ์ ๊ฐ์์ง๋ฅผ ๋ง๋ค๊ณ ์ถ์ด. ์ผ๋จ ํธ๋ค,๋งํฐ์ฆ 2๋ง๋ฆฌ ๋ง๋ ๋ค๊ณ ์น์ ๊ทผ๋ฐ ๊ฐ์์ง๋ง๋ค ์ด๋ฆ,ํฌ๊ธฐ,์๊น์ด ๋ค ๋ค๋ฅด์์? ์ด๊ฑธ ์ ์ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น? ๋น์ฐํ Poodle ํด๋์ค, Maltese ํด๋์ค๋ฅผ ๋ง๋ค์ด์ผํ ๊บผ๊ณ String dogName, int dogSize, Color DogColor ์ด๋ ๊ฒ ์ด๋ฆ,ํฌ๊ธฐ,์๊น์ ์ ์ํ ์ ์ญ๋ณ์๋ค์ด ํ์ํ๊ฒ ์ง?
๊ทธ๋ฆฌ๊ณ ๊ฐ์์ง๋๊น ์์ง์ด๋๊ฑฐ, ์ง๋๊ฑฐ ์ ๋ ์์ด์ผํ ๊บผ์ผ void Dogbarks(). void DogMove() ๊ทผ๋ฐ ์ ์๊ฐํด๋ด ์ง๊ธ์ ๋งํฐ์ฆ, ํธ๋ค 2์ข ๋ฅ์ ๊ฐ์์ง๋ง ๋ง๋ ๋ค๊ณ ํ์ง๋ง ์ด ์ธ์์ ๊ฐ์์ง์ข ๋ฅ๊ฐ ์ผ๋ง๋ ๋ง์? ์ผ๋ง๋ ์๋์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ด 1000์ข ๋ฅ ๊ฐ์์ง๋ฅผ ๋ง๋ ๋ค๊ณ ์น์. ๊ทธ๋ผ ์ด๋ป๊ฒ ๋ผ?
ํธ๋ค, ๋งํฐ์ฆ, ๋ณด๋์ฝ๋ฆฌ, ์ง๋๊ฐ, ์ฝ์ด๊ฐ ๋ฑ๋ฑ์ ์ ์ํ 1000๊ฐ์ ํด๋์ค๊ฐ ํ์ํ ๊บผ๊ณ ๊ฑฐ๊ธฐ์ ์์์ ๋งํ๊ฑฐ์ฒ๋ผ ์ด๋ฆ,ํฌ๊ธฐ,์ปฌ๋ฌ ๋ณ์๋ค์ด ํ์ํ๊ฒ ์ง? ๊ทธ๋ฆฌ๊ณ ๋ง์ฐฌ๊ฐ์ง๋ก ์์ง์ด๋๊ฑฐ, ์ง๋๊ฑฐ ํจ์๋ค๋ ํ์ํ ๊บผ์ผ ๊ทธ๋ผ ๋ช๊ฐ์ผ? ๋ณ์๋งํด๋ 3x1000 = 3000๊ฐ ํจ์๋งํด๋ 2x1000 ํ๋๊น 2000๊ฐ์ผ ์ด 5000๊ฐ ์ด๊ฑธ ์ธ์ ๋ค ๋ง๋ค๊ณ ์๋๊ณ ๊ทธ๋์ ํ์ํ๊ฒ Dog๋ถ๋ชจํด๋์ค์ผ. ํธ๋ค์ด๋ ๋งํฐ์ฆ๋ ์ง๋๊ฐ๋ ํฌ๊ฒ ๋ดค์๋ ๊ฑ๋ค๋ ์ ๋ถ Dog์์ ๊ทธ๋ฌ๋๊น Dogํํ ๊ณตํต์ ์ผ๋ก ์์๋ฒํ ์์๋ค์ ์๊ฐํด์ Dog๋ผ๋ ๋ถ๋ชจํด๋์ค์ ๋ฏธ๋ฆฌ ์ ์ํด๋๋๊ฑฐ์ผ
๊ทธ๋ฌ๋ฉด Dog๋ถ๋ชจํด๋์ค์ ๋ญ๊ฐ ํ์ํด? ๊ฐ๋ค์ ๋ชจ๋ ์ด๋ฆ, ํฌ๊ธฐ, ์๊น์ ๊ฐ์ง๊ณ ์๊ณ ์์ง์ด๊ณ ์ง์์์์ผ๋๊น 3๊ฐ์ ๋ณ์์ 2๊ฐ์ ํจ์๋ ์ด๋ค ๊ฐ์์ง๋ ๋ฌด์กฐ๊ฑด ํ์ํ๊ฒ ์ง ๊ทธ๊ฑธ Dog๋ถ๋ชจํด๋์ค์ ์ ์ํด ๊ทธ๋ฆฌ๊ณ ํธ๋คํด๋์ค, ๋งํฐ์ฆํด๋์ค, ์ง๋๊ฐํด๋์ค ๊ธฐํ๋ฑ๋ฑ.. 1000์ข ๋ฅ์ ๊ฐ์์ง ํด๋์ค๋ค์ Dog๋ผ๋ ํด๋์ค๋ฅผ ์์๋ฐ์ผ๋ฉด ์ด๋ป๊ฒ ๋ ๊น? dogName, dogSize, DogColor ์ด๋ฐ ๋ณ์๋ ๋ฌผ๋ก ์ด๊ณ Dogbarks(), DogMove() ๊ฐ์ ํจ์๋ค๋ ์ ์์์๋ ์ธ์์๊ฒ๋ผ
๊ทธ๋ผ 3000๊ฐ์ ๋ณ์, 2000๊ฐ์ ํจ์๋ฅผ ๋๊ฐ ํ์๋ก ์ง์ ์น์ง์์๋ ๋๋ค๋๊ฑฐ์ง Dogํด๋์ค์ ๊ทธ๋ฐ๊ฒ๋ค์ด ๋ฏธ๋ฆฌ ๋ค ์ ์๋์ด์๊ณ ํธ๋ค,๋งํฐ์ฆ๊ฐ์ ํด๋์ค๋ค์ด Dogํด๋์ค ์์์ ๋ฐ์์ผ๋ ๊ทธ๊ฒ ์์์ด์ผ. ๊ทผ๋ฐ ๊ฐ๋ค๋ง๋ค ์ง๋ ์๋ฆฌ๊ฐ ๋ค๋ฅธ ํํ๋ฅผ ๋์์? ๊ทธ๋ผ ๋ถ๋ชจ ํด๋์ค์์ ์์๋ฐ์ Dogbarks() ํจ์๋ด์ฉ์ด ์ ๋ถ๋ค ๋ฌ๋ผ์ผ๊ฒ ์ง? ์ด๊ฑธ ํจ์๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉ ํ๋ค๊ณ ํด. ๋คํ์ฑ์ด๋ผ๋ ๊ฐ๋ ์ธ๋ฐ ์ด๊ฒ ๊ฐ์ฒด์งํฅ ํต์ฌ์ด์ผ
๊ทธ๋ฆฌ๊ณ ๋๊ฐ ๊ฐ์๋ด์ ๋์ถฉ์๊ฒ ์ง๋ง ์์ํด๋์ค๋ ๋ถ๋ชจํด๋์ค์ ๋ชจ๋ ๋ณ์,ํจ์๋ฅผ ์ฌ์ฉํ ์์์ด. ๋จ ์ ๊ทผ์ ํ์๊ฐ public ,protected์ธ๊ฒ๋ง. ๊ทธ๋ฆฌ๊ณ ๊ธฐ์กด ๋ถ๋ชจํด๋์ค ํจ์์ ๊ฒ๋ค์ ๊ทธ๋๋ก ๊ฐ์ ธ๋ค ์ฐ๋ฉด์ ๊ฑฐ๊ธฐ์ ๋ง๋ถํ์ ์๋ก์ด ๊ฒ๋ค์ ์์ฑํ ์์๋๋ฐ c#์ base๋ผ๋ ํค์๋๊ฐ ์์ด. ์ด๊ฑด ์์์ ๊ณต๋ถํด. ๊ทธ๋ฐ๊ฑฐ๊น์ง ํ๋๋ถํฐ ์ด๊น์ง ๋ค ์ค๋ช ํ๋ ค๋ฉด ๋ช์ผ ๋ฐค์๋ ๋ชจ์๋ ์ต๋ํ ์ดํดํ๊ธฐ ์ฝ๊ฒ ์ฐ๋ ค๊ณ ํ๋ค
๊ทธ๋ฆฌ๊ณ ์ด๋ฐ๊ฑด ์ฝ๋ฉ๊ฐค์ด๋ ์นดํ๊ฐ์ ๋ฌผ์ด๋ด ์์งํ ๊ตฌ๊ธ๊ฒ์ํ๋ฉด ๋๋ ค์๋ ๋ด์ฉ์ด๋ ๋ฌผ์ด๋ณผ๊ฒ๋ ์์ ์ดํด ์๊ฐ๋ฉด ๋์์๊ฐ์ ์ฐพ์์ ๋ณด๋ฉด ๋ ๊บผ๊ณ ์ฌ๊ธฐ๋ ๊ทธ๋ฐ ๊ธฐ์ด์ค์ ์ฉ๊ธฐ์ด๋ ๋ค ๋๊ณ ์ค์ ๋ก ๊ฒ์๋ง๋๋ ์ฌ๋๋ค์ด ๋ชจ์ธ๊ณณ์ด๋ ์ด๋ฐ๊ธ์ ์์ฌ๋ฆฌ๋๊ฒ ์ข์. ๊ฐ๋ฐํ๋ฉด์ ๊ถ๊ธํ๊ฑฐ๋ ์ด์๊ฐ ๋ ๋งํ ๋ด์ฉ๊ฐ์๊ฒ๋ค์ด๋ฉด ๋ชจ๋ฅผ๊น
์ถ์ ๊ฐ์ํจ์ ์๊ธฐ๋ฉด ๋๊ฐ์