ย ย public class Define
ย ย {
public enum PlayerType
{
None = 0,
Knight = 1,
}
}
enum์ฉ Define ๋ง๋ ๋ด์
public class Creature
{
Define.PlayerType type;
}
ํฌ๋ฆฌ์ณ ๋ง๋ค๊ณ
public class Knight : Creature
{
type = Define.PlayerType.Knight;
}
ํฌ๋ฆฌ์ณ๋ฅผ ์์ ๋ฐ์ ๋์ดํธ์์ ์ด๋ ๊ฒ ํ๋๋ฐ ์ ์๋๋ ๊ฑฐ์?
Define.PlayerType type;
์ด๊ฑฐย ๊ฐ์ฒดํย ๋ง์ง?
PlayerType์ ์ํ๋ type๊ฐ์ฒด๋ฅผ ๋ง๋ ๊ฑฐ์ง?
๊ทธ๋ฐ ๋ด์ type์ย Define.PlayerType.Knight๋ฅผ ๋ฃ์ผ๋ ค ํ ๊ฑด๋ฐ ์ ์๋๋ ๊ฑฐ์ผ?
Main์์ย ์ธ์คํด์ค ๋ง๋ค๊ณ ์ฐ๋ ๊ฑด ๋๋๋ฐ
์ด๊ฑด ์๋๋ ์ด์ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ด
์ ๋ณด์๋
์ด๋๋ฅผ ์ด์ด์ผ ํจ? ๋์ดํธ ํฌ๋ฆฌ์ณ ๋ํ์ธ ์ด๋ 4๊ฐ ๋ค ํผ๋ธ๋ฆญ์ผ๋ก ์ด์ด๋ ์๋จ;
public protect ๊ฐ์๊ฑฐ ์๋ถ์ด๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก private์ผ๊ฒ์๋ค
์ด๋์ ๋ถ์ฌ์ผ ํด? ๋ณด์ด๋๋๋ก ๋ค ํผ๋ธ๋ฆญ ๋ถ์ฌ๋ ์๋จ;
ํฌ๋ฆฌ์ฒ์ type์
์๋๋๋ฐ?
๋ญ๋ผ๊ณ ์๋ฌ๋จ๋๋ฐ
ํน์ type = Define.PlayerType.Knight๋ฅผ ๊ทธ๋ฅ ํด๋์ค ์์ ์ด๊ฑฐ๋ฉด ์ ๋ ๊ฒ ํ๋ฉด ์๋๊ณ awake๋ start ํจ์ ์์ ์จ์ผ๋จ
Main์์๋ ๋๊ณ start์์๋ ๋๋๋ฐ ์ ํด๋์ค ์์๋ ์ ๋๋ ๊ฑฐ์ผ??
public class Creature { protected Define.PlayerType type; }
๋๊ธ์ ์ฝ๋๋ฅผ ์ฌ๋ฆฌ๋ ค ํ๋๋ฐ ์์ฌ๋ผ๊ฐ๋ค
์ ๋ญ๋ผ๊ณ ํด์ผ๋๋... ํจ์ ์์์ ๊ฐ์ ๋ณ๊ฒฝํ๋ ๊ฑด ๊ฐ๋ฅํ๋ฐ class์์ ๊ฐ์ ์ฃผ๋๊ฑฐ๋ ๋ณ์์ ์ด๊ธฐ๊ฐ์ ์ฃผ๋๊ฑฐ์. Creature์์ PlayerType type = ~~๋ผ๊ณ ๊ฐ์ ์ฃผ๋ ๊ฑด ๊ฐ๋ฅํ๋ฐ ์ง์ ์ ์ธํ ๊ณณ ์ด์ธ์์ ์ ๋ ๊ฒ ๊ฐ์ ์ค ์ ์์
Define.PlayerType type = Define.PlayerType.Knight; ์ด๊ฑด ๊ฐ๋ฅํ๋ฐ Define.PlayerType type; type = Define.PlayerType.Knight; ์ด๊ฒ ์๋๋ ๊ฑด ์ด๊ธฐ ๊ฐ์ ์ฃผ๋ ๊ฒ ์๋๋ผ์ ๊ทธ๋ ๋ค๋ ๋ป์ด์ผ? ์ด๊ธฐ ๊ฐ์ ๋ฐ๊พธ๋ ค๋ ํ๋์ Main์์๋ง ๊ฐ๋ฅํ ๊ฑฐ? (์ ๋ํฐ์ ๊ฒฝ์ฐ๋ start๋ awake?)
๋ ๋๊ฐ๋ฆฌ ํฐ์ง๋ ค๊ณ ํจ
1. ๋ณ์๋ฅผ ์ ์ธ ํ ๋ ์ด๊ธฐ๊ฐ์ ์ค ์๋ ์๊ณ ์ ์ค ์๋ ์์. 2. ๊ทธ ์ธ์ ๊ฐ ๋ณ๊ฒฝ์ ํจ์ ์์์ ๊ฐ๋ฅ. Define.PlayerType type์ด๋ผ๊ณ ์ ์ธํ ๊ณณ์์ ๊ฐ์ ์ ์คฌ๊ธฐ ๋๋ฌธ์ ์ด๊ธฐ๊ฐ์ ์ง์ ํ์ง ์์ ๊ฑฐ์ผ. ๊ทธ๋์ ํจ์ ๋ฐ์์ ์๋ก ๊ฐ์ ์ฃผ๋ ค๋ type = ~~ ๋ถ๋ถ์ ์๋๋๊ฑฐ๊ณ ํจ์ ์์์๋ผ๋ฉด ์์ ๋กญ๊ฒ ์ค ์ ์์ด. Awake๋ Start๋ Main์ด๋ GiveValueToType์ด๋
Define.PlayerType type; ์ด๊ฑด ์๋ฌ ์ ๋จ๋๋ฐ type = Define.PlayerType.Knight; ์ด๊ฑด ์ฐ์ฐ์ ๊ธฐ์ค ์ผ์ชฝ ์ค๋ฅธ์ชฝ์ด ๊ฐ๊ฐ ํ์ฌ ์ปจํ ์คํธ์ ์๋ค๊ณ ๋ธ
ํจ์ ์์์ ํด์ผํจ
๊ทธ๋ฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฐฐ์ฐ๊ณ ์ ์ด๋์ ์ ๋ํฐ ๋ฐฐ์ฐ๋ฉด์ ํ์ํ ๋๋ง๋ค C# ๊น์๋๋๊ฒ ๋ณ๋ก๋๊ฑฐ
์ธ์ด๋ถํฐ ๋ฐฐ์ฐ๊ณ ์์. ๊ทผ๋ฐ ๋ฉํ๋ ๋ณด๊ธฐ๋ง ํ๋๊น ๊ณ์ ์์ด๋จน๋๋ผ. ๊ทธ๋์ ๊ฐ๋จํ ๊ฑฐ ๋ง๋ค๋ฉด์ ๋ฐฐ์ฐ๋ ์ค์ธ๋ฐ ์ฌ๊ธฐ์ ๋งํ ๊ฑฐ์. enum์ ์ด๋ป๊ฒ ์ฐ๋ ์ง๋ ๋ณด๊ณ ๋ค์ด์ ์๋๋ฐ ๋ด๊ฐ ์ํ๋ ๋ฐฉ์์ผ๋ก ์ฐ๋ ค๋๊น ๋งํ๋ค.
๊ฐ์ ์ถ์ฒ ์ข ํด์ฃผ์ . ๋จธ๋ฆฌ๋ ํ๊ธฐํ ๊ฒธ ๋ค๋ฅธ ๊ฐ์๋ ํ ๋ฒ ์ ๋ ํ๊ณ ์์ผ๊ฒ์ ์ผ
์ฑ ํ๊ถ ์ก๊ณ ์ ๋ ใฑ
IDE 1007
1. protected Define.PlayerType type;์ผ๋ก ๋ฐ๊พธ๊ณ 2. Knight() {type = Define.PlayerType.Knight}๋ก ๋ฐ๊ฟ๋ฐ
ํ์ ์ ์ ๋ถ์ด๋ฉด ์์๋ฐ์ ์ ๋ ๊ทธ ๋ณ์ ๋ชป์จ. public๋ protected ๋ถ์ฌ์ค์ผ ํด.
๊ทธ๋ฆฌ๊ณ ๋ณ์์ ํ ๋นํ๋ ๊ฑด ๊ธฐ๋ณธ์ ์ผ๋ก ํจ์ ์์์ ํด์ผ ํด. ๊ฐ๋ const๋ readonly๊ฐ์ ๊ฑด ๋ค๊ฐ ํ ๋๋ก ํด๋ ๋๋๋ฐ, ์ง๊ธ ๋จ๊ณ์์ ์ผ๋จ ๋น์ถ์ผ.
ํ์ ์ ๋ถ์๋๋ฐ๋ ์๋๋๋ผ๊ณ . ์ด๊ธฐ๊ฐ ์ธ์๋ ๋ชป ์ฃผ๋ ๊ฒ ๋ง๋๋ด.