๋ฐ์ํ
01. ๐งฒ[๋จ์ ] ์ธํฐํ์ด์ค ๋ด ์์ํ๋๋ฅผ ์ ์ธ ํ ์ฌ์ฉ
1. ์ธํฐํ์ด์ค ๋ด ์์ํ๋
์์(Constant)๋?
- ํ๋ก๊ทธ๋จ์์ ๊ฐ(๋ฆฌํฐ๋ด) ๋์ ์ฌ์ฉํ๊ธฐ ์ํ ์๋ฏธ์๋ ๋จ์ด(์๋ณ์)
์ธํฐํ์ด์ค ๋ด ์ ์ธํ๋ ์ด์
- ํด๋์ค์๋ ์ ์ธ ๊ฐ๋ฅํ์ง๋ง ๋ณด๋ค ์ฌ์ด ์์ ์ ์ธ์ ์ํด ์ธํฐํ์ด์ค์ ์ ์ธํ๋ค
- public static final ์ ํ์ ์๋ต ๊ฐ๋ฅ
์ธํฐํ์ด์ค๋ ํด๋์ค์ ์์ํ๋๋ฅผ ์ ์ธํ ๊ฒฝ์ฐ ๋จ์
- ์์ํ๋๋ฅผ ๊ฐ์ ๋ํํ๋ ๋จ์ด(์๋ณ์)๋ก ์ฌ์ฉํ๊ธฐ ๋ถ์ ์
- ์์ํ๋๊ฐ ์ ์ธ๋ ์ธํฐํ์ด์ค ๋๋ ํด๋์ค๊ฐ ์๋ฌด๋ฐ ์๋ฏธ ์์ด ์ ๊ทผ ์ฉ๋๋ก๋ง ์ฌ์ฉ
- ์์ ๊ฐ์ ๋จ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด Java์์ ์ด๊ฑฐํ(enum)์ด๋ผ๋ ์๋ฃํ(์ฐธ์กฐํ)์ ์ ๊ณต
2. ์ธํฐํ์ด์ค ๋ด ์์ ์ ์ธ ์์
enumerate > InterfaceOne์ธํฐํ์ด์ค
package enumerate;
public interface InterfaceOne {
//์์ํ๋(Constant Field) ์ ์ธ - public static final ์ ํ์ ์๋ต ๊ฐ๋ฅ
int INSERT=1,UPDATE=2,DELETE=3,SELECT=4;
}
enumerate > InterfaceTwo์ธํฐํ์ด์ค
package enumerate;
public interface InterfaceTwo {
int ADD=1,MODIFY=2,REMOVE=3,SEARCH=4;
}
enumerate > InterfaceApp์คํํ๋ก๊ทธ๋จ
package enumerate;
public class InterfaceApp {
public static void main(String[] args) {
//์ธํฐํ์ด์ค์ ์ ์ธ๋ ์์ํ๋๊ฐ์ ์ถ๋ ฅํด๋ณด์
//ํ๋์ ์ ์ฅ๋ ๊ฐ์ด ์ ๊ณต๋์ด ์ถ๋ ฅ๋๋ค.
System.out.println("์ฝ์
= "+InterfaceOne.INSERT);
System.out.println("๋ณ๊ฒฝ = "+InterfaceOne.UPDATE);
System.out.println("์ญ์ = "+InterfaceOne.DELETE);
System.out.println("๊ฒ์ = "+InterfaceOne.SELECT);
//์ฝ์
= 1
//๋ณ๊ฒฝ = 2
//์ญ์ = 3
//๊ฒ์ = 4
System.out.println("์ฝ์
= "+InterfaceTwo.ADD);
System.out.println("๋ณ๊ฒฝ = "+InterfaceTwo.MODIFY);
System.out.println("์ญ์ = "+InterfaceTwo.REMOVE);
System.out.println("๊ฒ์ = "+InterfaceTwo.SEARCH);
//์ฝ์
= 1
//๋ณ๊ฒฝ = 2
//์ญ์ = 3
//๊ฒ์ = 4
//์์ํ๋์ ์ ์ฅ๋ ๊ฐ๊ณผ ๋์ผํ ์๋ฃํ(์์ํ)์ ๋ณ์๋ฅผ ์์ฑํ์ฌ ์์๋ฅผ ์ ์ฅํด๋ณด์
int choice = InterfaceOne.INSERT; //int choice = 1;์ ๋์ผํ ์ฝ๋์ด๋ค.
System.out.println("์ ํ = "+choice); //์ ํ = 1
switch (choice) {
//๋จ์ )
//์์ํ๋๊ฐ ์ ์ธ๋ ์ธํฐํ์ด์ค๋ ํด๋์ค๊ฐ ์๋ฌด๋ฐ ์๋ฏธ๋ฅผ ๊ฐ์ง์ง ์๊ณ ๋จ์ง ์ ๊ทผ ์ฉ๋๋ก๋ง ์ฌ์ฉ๋๊ณ ์๋ค.
//์๋ฏธ์๋ ์์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ด๊ฑฐํ(์ฐธ์กฐํ)์ ์ฐ์.
case InterfaceTwo.ADD: //case InterfaceOne.INSERT: ๊ฐ๋ฅ
System.out.println("# ํ์์ ๋ณด๋ฅผ ์ฝ์
ํฉ๋๋ค. #");
break;
case InterfaceOne.UPDATE:
System.out.println("# ํ์์ ๋ณด๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค. #");
break;
case InterfaceOne.DELETE:
System.out.println("# ํ์์ ๋ณด๋ฅผ ์ญ์ ํฉ๋๋ค. #");
break;
case InterfaceOne.SELECT:
System.out.println("# ํ์์ ๋ณด๋ฅผ ๊ฒ์ํฉ๋๋ค. #");
break;
}
}
}
02. ๐งฟ ์ด๊ฑฐํ(Enumerate Type)
- ์์๋ง์ ์ ์ธํ๊ธฐ ์ํ ์๋ฃํ(์ฐธ์กฐํ)
- public static final ์ ํ์ + int ๊น์ง ์๋ต ๊ฐ๋ฅ
- ์ด๊ฑฐํ์ ์ ์ธ๋ ์์ํ๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ํ(int)์ผ๋ก ์ค์ ์ด ๋จ
- ์์ํ๋๋ฅผ ์ ์ธํ๋ฉด ๊ธฐ๋ณธ์์ฑ์๋ฅผ ์ด์ฉํ์ฌ ์ด๊ธฐํ๋๋ค.
- ์ด๊ฑฐํ์ ์์ํ๋์๋ 0๋ถํฐ 1์ฉ ์ฆ๊ฐ๋๋ ์ ์๊ฐ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์๋ ์ ์ฅ๋จ
1. ํ์
//=> ์ด๊ฑฐํ์ ์ด๋ฆ์ ํ์ค์นผ ํ๊ธฐ๋ฒ์ ์ด์ฉํ์ฌ ์์ฑํ๋ ๊ฒ์ ๊ถ์ฅ
public enum ์ด๊ฑฐํ {
์์๋ช
,์์๋ช
,...;
}
2. ์ด๊ฑฐํ ์์
enumerate > EnumOne์ด๋
package enumerate;
public enum EnumOne {
//์์ํ๋ ์ ์ธ - public static final int ์๋ต ๊ฐ๋ฅ
// => ์ด๊ฑฐํ์ ์์ํ๋์๋ 0๋ถํฐ 1์ฉ ์ฆ๊ฐ๋๋ ์ ์ฅ๊ฐ์ด ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์๋ ์ ์ฅ
//0 //1 //2 //3
INSERT,UPDATE,DELETE,SELECT;
}
enumerate > EnumTwo์ด๋
package enumerate;
public enum EnumTwo {
ADD,MODIFY,REMOVE,SEARCH;
}
enumerate > EnumApp์คํํ๋ก๊ทธ๋จ
package enumerate;
public class EnumApp {
public static void main(String[] args) {
//์ด๊ฑฐํ์ ์ ์ธ๋ ์์ํ๋๊ฐ์ ์ถ๋ ฅํด๋ณด์
//์ธํฐํ์ด์ค ๋ด ์์์๋ ๋ค๋ฅด๊ฒ ์์์ ์ด๋ฆ์ด ์ ๊ณต๋์ด ์ถ๋ ฅ๋๋ค.
//์ฆ, ํ๋ก๊ทธ๋จ์์ ์์๊ฐ ๊ฐ์ ๋ํํ๋ ์ด๋ฆ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅ
System.out.println("์ฝ์
= "+EnumOne.INSERT);
System.out.println("๋ณ๊ฒฝ = "+EnumOne.UPDATE);
System.out.println("์ญ์ = "+EnumOne.DELETE);
System.out.println("๊ฒ์ = "+EnumOne.SELECT);
//์ฝ์
= INSERT
//๋ณ๊ฒฝ = UPDATE
//์ญ์ = DELETE
//๊ฒ์ = SELECT
System.out.println("์ฝ์
= "+EnumTwo.ADD);
System.out.println("๋ณ๊ฒฝ = "+EnumTwo.MODIFY);
System.out.println("์ญ์ = "+EnumTwo.REMOVE);
System.out.println("๊ฒ์ = "+EnumTwo.SEARCH);
//์ฝ์
= ADD
//๋ณ๊ฒฝ = MODIFY
//์ญ์ = REMOVE
//๊ฒ์ = SEARCH
//์ฃผ์
//1.
//์์(์ด๊ฑฐํ์ ์ ์ธ๋)๋ฅผ ์ ์ฅํ๊ธฐ ์ํด์๋ ๋ฐ๋์ ์ด๊ฑฐํ(์ฐธ์กฐํ)์ ์ด์ฉํ์ฌ ๋ณ์๋ฅผ ์ ์ธํด์ผํ๋ค.
//=>EnumOne ์๋ฃํ์ ์ ์ธ๋ ์์๋ง ์ ์ฅ ๊ฐ๋ฅํ ๋ณ์
EnumOne choice = EnumOne.INSERT; //ok
//2.
//์์๊ฐ ์ ์ธ๋ ์ด๊ฑฐํ์ ํ๋์ ์๋ฃํ์ผ๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
//int choice = EnumOne.INSERT; //error
System.out.println("์ ํ = "+choice); //์ ํ = INSERT
//3.
//์ด๊ฑฐํ(๋์ดํ)์ผ๋ก ์ ์ธ๋ ์ฐธ์กฐ๋ณ์์ ๋น๊ต๊ฐ์ ๊ฐ์ ์๋ฃํ์ ์์๋ง ์ฌ์ฉํ์ฌ ๋น๊ต๊ฐ ๊ฐ๋ฅํ๋ค
switch (choice) {
case INSERT: //case ADD: //error
System.out.println("# ํ์์ ๋ณด๋ฅผ ์ฝ์
ํฉ๋๋ค. #");
break;
case UPDATE:
System.out.println("# ํ์์ ๋ณด๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค. #");
break;
case DELETE:
System.out.println("# ํ์์ ๋ณด๋ฅผ ์ญ์ ํฉ๋๋ค. #");
break;
case SELECT:
System.out.println("# ํ์์ ๋ณด๋ฅผ ๊ฒ์ํฉ๋๋ค. #");
break;
}
}
}
03. ๐งฟ์ํ๋ ๊ฐ์ผ๋ก ์ด๊ฑฐํ ์ด๊ธฐํ ํ ์ฌ์ฉ
1. ์ด๊ฑฐํ ์์ํ๋์ ์ํ๋ ๊ฐ์ผ๋ก ์ด๊ธฐํ
๐ ์๊ณ ๋์ด๊ฐ๊ธฐ
- ์ด๊ฑฐํ(๋์ดํ)์ ์์ํ๋๋ฅผ ์ ์ธํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก๋ ๊ธฐ๋ณธ์์ฑ์๊ฐ ํธ์ถ๋์ด 0์์ 1์ฉ ์ฆ๊ฐ๋๋์ ์ํ(int)์ ๊ฐ๋ค๋ก ์ด๊ธฐํ๋จ
package enumerate;
public enum Compass {
//0 //1 //2 //3
EAST,WEST,SOUTH,NORTH;
}
2. ์ํ๋ ๊ฐ์ผ๋ก ์ด๊ธฐํํ๋ ๋จ๊ณ
๐[step1] private final๋ก ๋ํํ๋ ๋ง๋ค๊ธฐ
- ์์ํ๋์ ์๋ฃํ ๋๋ ์์ํ๋์ ์ ์ฅ๋๋ ๊ฐ์ ๋ณ๊ฒฝํ๊ธฐ ์ํด์๋ ํ๋๋ฅผ ์ ์ธํด์ผํจ
- private final ์ ํ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ธํ๊ธฐ
- ๋ํํ๋์ ์๋ฃํ์ ์ํ๋๋๋ก! int , String ...
//์์ํ๋๋ฅผ ํํํ๊ธฐ ์ํ ๋ํํ๋
private final String value;
๐[step2] private๋ก ์์ฑ์ ์ ์ธํ๊ธฐ
- ๐ฅ์ฃผ์
- ๋งค๊ฐ๋ณ์๊ฐ ์์ฑ๋ ์์ฑ์๋ฅผ ์ ์ธํ๋ฉด ๊ธฐ๋ณธ์์ฑ์๋ ์ ๊ณต๋์ง ์์ผ๋ฏ๋ก ์์ ์ ์ธ์ด ๋ถ๊ฐ๋ฅํด์ง
- ํ๋์ ์ ์ฅ๋ ๊ฐ์ ์ด์ฉํ์ฌ ์์ํ๋๊ฐ์ ๋ณ๊ฒฝํ๊ธฐ ์ํด ๋ฐ๋์ ์์ฑ์๋ฅผ ์ ์ธํด์ผํจ
- private final์ ํ์๋ก ์ ์ธ๋ ๋ํํ๋์ ์ด๊ธฐ๊ฐ์ ์ค์ ํ๊ธฐ ์ํ ์์ฑ์ ์ ์ธํ๊ธฐ
- ์์ฑ์๋ ๋ฐ๋์ ์๋ํ ์ ์ธ - private
// ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ๊ฐ์ ๋ํํ๋์ ์ ์ฅ - ์์ํ๋ ์ด๊ธฐํ private Compass(String value) { this.value=value; }
๐[step3] Getter ๋ฉ์๋ ์์ฑํ๊ธฐ
//๋ํํ๋์ ๋ํ Getter ๋ฉ์๋ - ์์ํ๋์ ์ ์ฅ๋ ๊ฐ์ ๋ฐํํ๋ ๋ฉ์๋
public String getValue() {
return value;
}
3. ์ด๊ฑฐํ ์ด๊ธฐํ ํ ์ฌ์ฉ ์์
enumerate > Compass์ด๋
package enumerate;
public enum Compass {
//๋งค๊ฐ๋ณ์๊ฐ ์์ฑ๋ ์์ฑ์๋ฅผ ์ ์ธํ๋ฉด ๊ธฐ๋ณธ์์ฑ์๊ฐ ์ ๊ณต๋์ง ์์ผ๋ฏ๋ก ์์ํ๋ ์ ์ธ ๋ถ๊ฐ๋ฅ
//EAST,WEST,SOUTH,NORTH;
//๋งค๊ฐ๋ณ์๊ฐ์๋์์ฑ์๋ฅผ ์ด์ฉํด ์์ํ๋ ์ ์ธ
EAST("๋"),WEST("์"),SOUTH("๋จ"),NORTH("๋ถ");
//์์ํ๋๋ฅผ ํํํ๊ธฐ ์ํ ๋ํํ๋
private final String value;
//ํ๋์ ์ ์ฅ๋ ๊ฐ์ ์ด์ฉํ์ฌ ์์ํ๋๊ฐ์ ๋ณ๊ฒฝํ๊ธฐ ์ํ ์์ฑ์
private Compass (String value) {
this.value=value;
}
//๋ํํ๋์ ๋ํ Getter ๋ฉ์๋
//์์ํ๋์ ์ ์ฅ๋ ๊ฐ์ ๋ฐํํ๋ ๋ฉ์๋
public String getValue() {
return value;
}
}
enumerate > CompassApp์คํํ๋ก๊ทธ๋จ
package enumerate;
public class CompassApp {
public static void main(String[] args) {
//1.
//์์ํ๋๊ฐ ์ถ๋ ฅ - ์์ํ๋๋ช
์ ์ ๊ณต๋ฐ์ ์ถ๋ ฅ
System.out.println("๋์ชฝ = "+Compass.EAST);
System.out.println("์์ชฝ = "+Compass.WEST);
System.out.println("๋จ์ชฝ = "+Compass.SOUTH);
System.out.println("๋ถ์ชฝ = "+Compass.NORTH);
//๋์ชฝ = EAST
//์์ชฝ = WEST
//๋จ์ชฝ = SOUTH
//๋ถ์ชฝ = NORTH
//2.
//๋ํํ๋๊ฐ์ ๋ฐํ๋ฐ์ ์ถ๋ ฅ - ์์ํ๋์ ์ ์ฅ๋ ๊ฐ์ ์ ๊ณต๋ฐ์ ์ถ๋ ฅ
System.out.println("๋์ชฝ = "+Compass.EAST.getValue());
System.out.println("์์ชฝ = "+Compass.WEST.getValue());
System.out.println("๋จ์ชฝ = "+Compass.SOUTH.getValue());
System.out.println("๋ถ์ชฝ = "+Compass.NORTH.getValue());
//๋์ชฝ = ๋
//์์ชฝ = ์
//๋จ์ชฝ = ๋จ
//๋ถ์ชฝ = ๋ถ
//3.
//EnumType.values() :
//=>์ด๊ฑฐํ์ ์ ์ธ๋ ๋ชจ๋ ์์ํ๋๋ฅผ ๋ฐฐ์ด๋ก ๋ณํํ์ฌ ๋ฐํํ๋ ๋ฉ์๋
for(Compass compass:Compass.values()) {
//EnumType.ordinal() : ์์ํ๋๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํ ์ฒจ์(Index)๋ฅผ ๋ฐํํ๋ ๋ฉ์๋
System.out.println(compass+" = "+compass.getValue()+" >> "+compass.ordinal());
}
//EAST = ๋ >> 0
//WEST = ์ >> 1
//SOUTH = ๋จ >> 2
//NORTH = ๋ถ >> 3
}
}
๋ฐ์ํ
'java > realization' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[realization] 7. ์ค์ฒฉํด๋์ค(Nested Class) (0) | 2024.06.12 |
---|---|
[realization] 5. ๊ธฐ๋ณธ๋ฉ์๋๋ฅผ ํฌํจํ ์ธํฐํ์ด์ค (0) | 2024.06.11 |
[realization] 4. ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถฐ ์ ์ง๋ณด์์ ํจ์จ์ฑ ๋์ด๋ ๋ฐฉ๋ฒ (1) | 2024.06.10 |
[realization] 3. ๐ขBoat๐Car๐ฅRealApp (0) | 2024.06.10 |
[realization] 2. ๐ฆWolfHumanApp (0) | 2024.06.09 |