열거형 기능
1. enum을 사용하여 Object 클래스 대신 기본적으로 java.lang.Enum 클래스를 상속하는 열거 클래스를 정의합니다. 그 중 java.lang.Enum 클래스는 java.lang.Serialized와 java.lang.Comparable이라는 두 가지 인터페이스를 구현합니다.
2. 열거형 클래스의 생성자는 전용 액세스 한정자만 사용할 수 있습니다. 해당 생성자의 액세스 제어 한정자를 생략하면 기본적으로 프라이빗 수정이 사용됩니다.
3. 열거 클래스의 모든 인스턴스는 열거 클래스에 명시적으로 나열되어야 합니다. 그렇지 않으면 이 열거 클래스는 인스턴스를 생성할 수 없습니다. 이러한 인스턴스가 나열되면 프로그래머가 명시적으로 추가할 필요 없이 시스템이 자동으로 공개 정적 최종 수정 사항을 추가합니다.
},목{
공개 문자열 toLocaleString(){
"목요일"을 반환합니다.
}
},금{
공개 문자열 toLocaleString(){
"금요일"을 반환합니다.
}
},앉았다{
공개 문자열 toLocaleString(){
"토요일"을 반환합니다.
}
},해{
공개 문자열 toLocaleString(){
"일요일"을 반환합니다.
}
};
공개 추상 문자열 toLocaleString();
}
int CompareTo 메서드
String name()은 열거형 인스턴스의 이름을 반환합니다.
int ordinal()은 열거형에서 열거형 값의 인덱스를 반환합니다.
String toString()은 name보다 더 일반적으로 사용되는 열거형의 인스턴스 이름을 반환합니다.
공개 정적 값()
}
개인 램프(반대 문자열, 다음 문자열, 부울 조명){
this.opposite = 반대;
this.next = 다음;
this.lighted = 불이 켜졌습니다;
}
/*현재 표시등이 녹색인지 여부*/
개인 부울 조명;
/*현재 빛이 동시에 녹색인 해당 방향*/
반대쪽 개인 문자열;
/*현재 조명이 빨간색으로 바뀌면 다음 조명이 녹색으로 변합니다*/
개인 문자열 다음;
공개 부울 isLighted(){
조명이 켜진 상태로 돌아옵니다.
}
/**
* 특정 빛이 녹색으로 변하면 해당 방향의 빛도 녹색으로 변합니다.
*/
공공 무효 조명(){
this.lighted = true;
if(반대 != null){
Lamp.valueOf(opposite).light();
}
System.out.println(name() + "램프가 녹색입니다. 아래에 자동차가 지나가는 것을 볼 수 있는 방향이 총 6개 있어야 합니다!");
}
/**
* 특정 빛이 빨간색으로 변하면 해당 방향의 빛도 빨간색으로 변하고, 다음 방향의 빛은 녹색으로 변합니다.
* @return 다음으로 녹색으로 바뀔 신호등
*/
공공 램프 정전(){
this.lighted = 거짓;
if(반대 != null){
Lamp.valueOf(opposite).blackOut();
}
램프 nextLamp= null;
if(다음 != null){
nextLamp = Lamp.valueOf(다음);
System.out.println("녹색 표시등이 " + name() + "--------->에서 " + next로 전환됩니다);
nextLamp.light();
}
nextLamp를 반환합니다.
}
}