์ง๋ฌธํ๊ธฐ ์์์ ๋ฐฉ๊ฐ์!!
๋์จ์ ์ด๋ฐ๊ณณ์ด ์์๋ค ์์ผ๋ก ์์ฃผ ๋ค๋ฆด๊ป
์ ๋ํฐ๋ก 1์ธ ๊ฐ๋ฐํ๊ณ ์๋ ๋ ์ธ๋ฐ
ํด๋์ค ์์ public, private ๋ณ์๊ฐ ์์์
๊ทผ๋ฐ ๋ด๋ถ์์๋ง ์ฌ์ฉํ๋ ๋ณ์๋ private๋ก ์ฐ๋ฉด ๋ณ๋ก ์๊ด์ด ์๋๋ฐ
๋ด์ธ๋ถ์์ ์ฌ์ฉํ ๋๋ private์ผ๋ก ์ ์ธํ๊ณ public ๋ฉ์๋๋ก ์ ๊ทผ์ ํ๊ฑฐ๋
c# ์๋ ๊ตฌํ ํ๋กํผํฐ๋ฅผ ์จ์ ์ ๊ทผํ๊ณ ํ๋๋ผ๊ณ
๊ทผ๋ฐ ๋ฉ์๋๋ ์๋๊ตฌํ ํ๋กํผํฐ๋ฅผ ์จ์ ๊ทธ ๋ณ์์ ์ ๊ทผ์ ํ๋ public์ผ๋ก ์จ์
์ ๊ทผ์ ํ๋ ๋ฌด์จ ์ฐจ์ด์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ๋๊ฑฐ์ผ
์๋ฅผ ๋ค๋ฉด
private int _currentLevel;
public int CurrentLevel
{
set
{
_currentLevel = value;
}
get
{
return _currentLevel;
}
}
์ด๊ฑฐ๋
public currentLevel;
์ด๊ฑฐ๋ ์ฌ์ค ์ฐจ์ด๋ฅผ ์ ๋ชป๋๋ผ๊ฒ ๊ฑฐ๋ . ๊ทธ๋ฅ ๋ฐ๋ก ์ง์ ์ ์ผ๋ก ๋ณ์์ ์ก์ธ์คํ์ง ์๊ณ ๊ฒฝ์ ํด์ ์ ๊ทผํ๋ค๋ ๋๋์ ์ฃผ๋ ค๊ณ
์ด๋ ๊ฒ ํ๋๊ฑด๊ฐ?? ๋น์ ๊ณต์์ ํ๋์ฉ ๋ถ๋ซํ๊ฐ๋ฉด์ ํ๋ ค๋๊น ์ฝ์ง๊ฐ ์๋ค
ํ๋ค ๋ชจ๋ ๊ฐ๋ฐ ๊ฑด์นํ์๊ณ ์ฌ๋ฆ์ฒ ๊ฑด๊ฐ๊ด๋ฆฌ ์ํ๋ฉด์ ํ๋ด์
ํ๋ผ์ด๋น์ผ๋ก ๋๋ฉด ์ ๊ทผ ๊ฒฝ๋ก๋ฅผ ์ ํ ํ ์ ์์.
์๋ฅผ ๋ค์ด int m_data; ๋ผ๋ ๋ณ์๊ฐ ์๋๋ฐ, ์ด๊ฑธ GetData, SetData ๋ผ๋ ๋ฉ์๋๋ก ์ ๊ทผํ๋ฉด
ใ ใ
int m_data;๋ฅผ int m_awesome_value; ๋ผ๊ณ ์ด๋ฆ์ ๋ฐ๊ฟ๋ GetData, SetData ๋ฉ์๋๋ง ๋ฐ๊พธ๋ฉด ๋๋๊ฑฐ์.
๋ง์ฐฌ๊ฐ์ง๋ก m_data๋ SetData ๋ฉ์๋๋ก๋ง ์ ๊ทผ์ด ๊ฐ๋ฅํ๊ธฐ๋๋ฌธ์, ์ด๋์ ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋์ง ์ฐพ๊ธฐ ์ฌ์์ง๊ธฐ๋ ํจ.
์ผ์ ๊ทธ๋ ๊ตฌ๋. ๋์ค์ ๋ณ์๋ช ๋ฐ๊ฟ๋ ์ ๋ฆฌํ๋ค ์ด์ ๋์ธ๊ฑด๊ฐ? vs์์ ctrl + r r ํด์ ๋ณ์๋ช ๋ฐ๊ฟ๋ ์น ๋ฐ๊พธ๊ณ ์๊ธดํ๋ฐ
๋์ค์ ๋๋ฒ๊น ? ํ ๋ ์ข๋ ์ฌ์์ง๋ ์ฅ์ ๋ ์๊ตฌ๋ ๋ต๋ณ ๊ณ ๋ง์ค!
OOP, ๊ทธ๋ฌ๋๊น ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ์ค๊ณ๋ฅผ ํ๋๊ฒฝ์ฐ์ ํ ์์.
OOP๊ฐ ์ฅ์ ๋ง ์๋๊ฒ๋ ์๋๊ฒ, ์ ๋ ๊ฒ public์ผ๋ก ๋ ๊ฒฝ์ฐ C++์์๋ ๋ฐ๋ก ์ ๊ฐ์ ์บ์์ ์๋ ๋ณ์๋ค์ ๋ถ๋ฌ์ค๊ธฐ ๋๋ฌธ์, CPU ๋ถํ๊ฐ ์ ๊ฒ ์ผ์ด๋๊ณ , ์์ ๋จ์๋ถํฐ ์ต์ ํ๊ฐ ๊ฐ๋ฅํ ๊ธฐ๋ฒ๋ ์์ด. ๋ฌผ๋ก ์ด๋ฐ๊ฑด C#์ฒ๋ผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ง์ ์ปจํธ๋กคํ์ง ์๋ ๊ฒฝ์ฐ์ ์ด๋ป๊ฒ ๊ตฌํํ ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง;;
์์ ์์งํ ๋ผ์ ์๋ฟ๋๋ค! ์ด๋ฐ ๋๋์ ์๋๋ฐ ์ ๊ทธ๋ ๊ตฌ๋~ ํ๊ณ ์๊ฐ์ด๋๋ค ใณใณใณ!
ใด ๊ทธ๋ฅ ํ๋ค๋ณด๋ฉด ์๋ฟ์๊ฑฐ์. ์ํ์ฐฉ์ค๋ฅผ ๊ฒช์ผ๋ฉด์ ๋ฐฐ์ฐ๋๊ฑฐ๋ผ;;
๋ค๋ฅธ ์ด๋ค ๊ธฐ๋ฅ์ ํ๋ ํจ์๋ ๋ ผ์ธํ๊ณ ์ด๋ค ๋ฉค๋ฒ ๋ณ์๋ง์ ์ํ set get ํจ์๋ฅผ ๊ตฌํํ๋ ์ด์ ๋ ๋ณดํธ์ ์ผ๋ก ๋ณ์์ ๋ฅ๊ฐ์ ๋ฃ๊ฑฐ๋ ์๊ธฐ ๋ง๋๋ก ์์ ํ๋๊ฑธ ๋ฐฉ์งํ๊ธฐ ์ํด์์. ์๋ฅผ๋ค์ด ๋ฉค๋ฒ ๋ณ์ a๊ฐ ์๊ณ a๋ [0,30] ๋ฒ์ ๋ด์ฌ์ผ ํ๋ค๋ฉด setํจ์ ์์ด ๊ตฌํํ๋ค๋ฉด ๋์ ํ๋ ์ฝ๋์์ ๋ฒ์๊ฒ์ฌ๋ฅผ ํด์ผํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์๊ณ ๊ทธ๋ด ์ ์ฝ์ด ์๋์ง ๋ชจ๋ฅด๋ ํ ํ๋ก๊ทธ๋๋จธ๊ฐ A.a = 50 ์ด๋ ๊ฒ ๋์ ํด๋ฒ๋ฆด ์๋ ์๋จ๊ฑฐ์ ๊ทธ๋ฌ๋ set๋ก ๋ง๋ค๊ฒ ๋๋ฉด A.seta(50)๋ A.seta(-30)๊ฐ์ ์ง์ ํด๋ setํจ์ ๋ด์์ ๋ฒ์๊ฒ์ฌ๋ฅผ ํด์ ์ ์์ ์ ๋ ฅ์ด ๋ณด์ฅ๋จ. assert ๊ฐ์๊ฑธ ๋ฃ์์๋ ์๊ณ . get์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ์ ๊ฐ์ ธ์ค๊ธด ํด์ผ๋๋๋ฐ ์ง๋ง๋๋ก ์์ ํ์ง ๋ชปํ๊ฒ ํ๊ณ ์ถ์๋ ์ธ ์ ์์. ์ฝ๋ฐ์ด๋ ํผ๋ฐ์ค๋ฉด ๋ณดํต
const์ ํจ๊ป ์ฌ์ฉํ๊ณ . call by value๋ฉด ์ ์ด๋ถํฐ ๊ฐ์ด ์์ ๋ ์ฌ์ง๊ฐ ์์ง. ๊ทธ ์ธ ์ถ๊ฐ์ ์ธ ํ๋ก์ธ์ฑ์ด ํ์ํด์ set~~~~ get~~~~ ๋ฐ์์ ์ด๋ฆ์ด ๋ถ์ ํจ์๋ฅผ ์ด์ผ๊ธฐ ํ๋๊ฑด ์๋๊ฒ ๊ฐ์ผ๋๊น ์ค๋ช ์ํจ
๋ด ๋๋์ด๋ ํ๋ผ์ด๋น์ด๋ผ ์ฌ์์น๊ตฌ๋ง ํผ๋ธ๋ฆญํ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅ
์ฌ์ค ๋ณ์ ํ๋๊ฐ์ง๊ณ ๊ฒ์ ๋ง๋ค๋ฉด ์ด๊ฑธ ์ด๋ฐ์ฐ๋ ์ถ์๊ฑด๋ฐ, ๋์ค์ ๋ด๋ถ๊ฐ ๋ณต์กํด์ง๊ณ ์๋ก ๋ณ์๋ค์ด ์ํฅ์ ๋ผ์น ์ ๋๊ฐ ๋๋ฉด ์ธํฐํ์ด์ค ์ ๋ง๋ค์ด์ ๊ทธ๊ฑธ๋ก ๋ด๋ถ ์์ ํ๊ฒ ํ๋๊ฒ ํจ ํธํจ.
ํ๋ค ๋ชจ๋ ๊ณ ๋ง๋ฐ๋ฆฌ ์ข ๋ ์ดํด๊ฐ ๋์ด๋ฅ! ๊ทผ๋ฐ ํ๋ค ์๊ธฐ ๋ฃ๋ค๋ณด๋ ๊ทธ๋ผ public์ ์ธ์ ์ฐ์ง ใ กใ ก? ์ด๋ฐ ์๊ฐ์ด ๋๋ค. ๊ทธ๋ฅ ๊ฐ๋ณ๊ฒ ํธ๋ฆฌํ๊ฒ ์ฐ๋ ์ฉ๋์ธ๊ฒ์ธ๊ฐ.. ์๋ฌดํผ ๋ชจ๋ ๊ฐ์ฌํฉ๋๋ค.
์บก์ํ ๊ฒ์ - dc App