列挙機能
1. enum を使用して、デフォルトで Object クラスの代わりに java.lang.Enum クラスを継承する列挙型クラスを定義します。このうち、java.lang.Enum クラスは、java.lang.Serializable と java.lang.Comparable の 2 つのインターフェイスを実装します。
2. 列挙型クラスのコンストラクターはプライベート アクセス修飾子のみを使用できます。そのコンストラクターのアクセス制御修飾子が省略された場合は、デフォルトでプライベート修飾子が使用されます。
3. 列挙型クラスのすべてのインスタンスは列挙型クラスに明示的にリストされる必要があります。そうしないと、この列挙型クラスはインスタンスを生成できなくなります。これらのインスタンスがリストされると、プログラマが明示的に追加する必要がなく、システムはパブリックな静的な最終変更を自動的に追加します。
}、木{
public String toLocaleString(){
「木曜日」を返します。
}
},金曜日{
public String toLocaleString(){
「金曜日」を返します。
}
}、土{
public String toLocaleString(){
「土曜日」を返します。
}
}、太陽{
public String toLocaleString(){
「日曜日」を返します。
}
};
public abstract String toLocaleString();
}
int CompareTo メソッド
String name() は列挙型インスタンスの名前を返します。
int ordinal() は、列挙内の列挙値のインデックスを返します。
String toString() は、名前よりも一般的に使用される列挙型のインスタンス名を返します。
パブリック静的 valueOf()
}
プライベート ランプ(反対の文字列、次の文字列、ブール値点灯){
this.opposite = 反対;
this.next = 次;
this.lighted = 点灯;
}
/*現在のライトが緑色かどうか*/
プライベートブール値が点灯します。
/*現在のライトが同時に緑色になる対応する方向*/
反対のプライベート文字列。
/*現在のライトが赤に変わったら、次のライトが緑に変わります*/
次のプライベート文字列。
パブリックブール値 isLighted(){
リターンライト。
}
/**
※あるライトが緑色になると、対応する方向のライトも緑色になります。
*/
public void light(){
this.lighted = true;
if(反対!= null){
Lamp.valueOf(opposite).light();
}
System.out.println(name() + "ランプは緑色です。通過する車が見える方向は下に合計 6 方向あるはずです!");
}
/**
※ある信号が赤に変わると、対応する方向の光も赤になり、次の方向の光が緑に変わります
* @return 次に青に変わる信号
*/
public Lamp blackOut(){
this.lighted = false;
if(反対!= null){
Lamp.valueOf(opposite).blackOut();
}
ランプ nextLamp= null;
if(次 != null){
nextLamp = Lamp.valueOf(next);
System.out.println("緑色のライトが " + name() + "--------> から " + next) に切り替わります。
nextLamp.light();
}
nextLamp を返します。
}
}