■ Java Enumeration(열거형)
- enum 키워드 사용
- java.lang.eum 클래스를 상속
- enum은 다른 클래스를 상속하지 못하지만, 인터페이스 구현은 가능(이미 상속하고 있기 때문에)
- 내부적으로는 클래스 동작
- 열거형 타입에는 열거형 상수와 null 값 할당 가능
- public과 default만 사용 가능
• 기본 구현
- 열거형 상수는 객체이다.
enum Job { // 각 상수는 0부터 숫자를 가지지만, Symbol로만 사용하고 숫자는 사용하지 않는다.
STUDENT, MARKETING, DEVELOPER, CHIEF_EXECUTIONAL_OFFICER; // 열거형
}
class Foo{
enum Symbol{
ONE, TWO, THREE;
}
}
class Test{
public static void main(Strin[] args){
System.out.println(Job.STUDENT);
System.out.println(Foo.Symbol.ONE);
}
}
• 열거형 내부에 메소드 구현
enum Symbol {
ONE, TWO, THREE, FOUR;
public Symbol nextSymbol() {
if (this.equals(ONE)) {
return TWO;
} else if (this.equals(TWO)) {
return THREE;
} else if (this.equals(THREE)) {
return FOUR;
}else{
return ONE;
}
}
}
• 열거형 내부에 메소드 구현
- enum 생성자는 private 이다.
enum Family {
FATHER("아버지"), MOTHER("어머니"), SON("아들"), DAUGHTER("딸");
private String koreanWord;
// private는 생략 가능(public 불가, 자동으로 private)
private Family(String koreanWord){
this.koreanWord = koreanWord;
}
public String getKoreanWord() {
return koreanWord;
}
public void setKoreanWord(String koreanWord) {
this.koreanWord = koreanWord;
}
}
class Test{
public static void main(String[] args){
Family farm = Family.SON;
System.out.println(farm.getKoreanWord());
farm.setKoreanWord("버린 자식");
System.out.println(farm.getKoreanWord());
}
}
'Coding > Java' 카테고리의 다른 글
Java Handling Exception(예외 처리) (0) | 2020.09.17 |
---|---|
Java Generic(제네릭) (0) | 2020.09.17 |
Java Abstract Class & Interface (0) | 2020.09.17 |
Java Polymorphism(다형성) (0) | 2020.09.17 |
Java Modifier(제어자) (0) | 2020.09.16 |