๋ธ๋ก๊ทธ ์ฎ๊ฒผ์ต๋๋ค! ๐ก integer.blog
์๋ฐ์ ์ ์(๋จ๊ถ์ฑ ์ ) ํ์ต๋ด์ฉ ์ ๋ฆฌ
1. ์ด๊ฑฐํ(Enums)
Java์ ์ด๊ฑฐํ์ C์ธ์ด์ ์ด๊ฑฐํ๊ณผ ๋ค๋ฅด๊ฒ ์ด๊ฑฐํ์ด ๊ฐ๋ ๊ฐ ๋ฟ๋ง ์๋๋ผ ํ์ ๊น์ง ๊ด๋ฆฌํ๋ค.
๊ธฐ์กด์ ์์์ ๊ฐ์ด ๋ฐ๋๋ฉด, ํด๋น ์์๋ฅผ ์ฐธ์กฐํ๋ ๋ชจ๋ ์์ค๋ฅผ ๋ค์ ์ปดํ์ผ ํด์ผํ๋ค. ํ์ง๋ง ์ด๊ฑฐํ ์์๋ฅผ ์ฌ์ฉํ๋ฉด ๊ธฐ์กด์ ์์ค๋ฅผ ๋ค์ ์ปดํ์ผํ์ง ์์๋ ๋๋ค.
1.1. ์ฌ์ฉ๋ฐฉ๋ฒ
enum ์ด๊ฑฐํ์ด๋ฆ { ์์๋ช
1, ์์๋ช
2, ...}
- ์ด๊ฑฐํ ์์ ๊ฐ์ ๋น๊ต์๋
==
์ ์ฌ์ฉํ ์ ์๋ค.equals()
๊ฐ ์๋==
์ผ๋ก ๋น๊ต๊ฐ๋ฅํ ๊ฒ์ ๊ทธ๋งํผ ๋น ๋ฅด๋ค๋ ๊ฒ์ด๋ค. - ํ์ง๋ง ๋น๊ต์ฐ์ฐ์(<, >)๋ ์ฌ์ฉํ ์ ์๊ณ
compareTo()
๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. - switch๋ฌธ์ ์กฐ๊ฑด์์ ์ด๊ฑฐํ ์ฌ์ฉํ๊ธฐ
void move() {
switch(dir) {
case EAST: x++; //Direction.EAST๋ผ๊ณ ์ฐ๋ฉด ์๋๋ค.(์ด๊ฑฐํ ์ด๋ฆ ์์ด ์์ ์ด๋ฆ๋ง ์ ์ด์ผ ํ๋ค.)
break;
case WEST: x--;
break;
case SOUTH: y++;
break;
case NORTH: y--;
break;
}
}
1.2. ์ด๊ฑฐํ์ ์ดํด
enum Direction { EAST, WEST, SOUTH, NORTH }
- ์ด๊ฑฐํ ์์ ํ๋ํ๋๊ฐ Direction ๊ฐ์ฒด์ด๋ค.
์์ ๋ฌธ์ฅ์ ํด๋์ค๋ก ์ ์ํ๋ฉด,
class Direction {
static final Direction EAST = new Direction("EAST");
static final Direction WEST = new Direction("WEST");
static final Direction SOUTH = new Direction("SOUTH");
static final Direction NORTH = new Direction("NORTH");
private String name;
private Direction(String name) {
this.name = name;
}
}
- Directionํด๋์ค์ static์์ EAST, WEST, SOUTH, NORTH์ ๊ฐ์ ๊ฐ์ฒด์ ์ฃผ์์ด๊ณ , ์ด ๊ฐ์ ๋ฐ๋์ง ์๋ ๊ฐ์ด๋ฏ๋ก
==
๋ก ๋น๊ต๊ฐ ๊ฐ๋ฅํ ๊ฒ์ด๋ค.