Fitur enum
1. Gunakan enum untuk mendefinisikan kelas enumerasi yang mewarisi kelas java.lang.Enum secara default, bukan kelas Object. Diantaranya, kelas java.lang.Enum mengimplementasikan dua antarmuka: java.lang.Serializable dan java.lang.Comparable.
2. Konstruktor kelas enumerasi hanya dapat menggunakan pengubah akses privat. Jika pengubah kontrol akses konstruktornya dihilangkan, modifikasi privat digunakan secara default;
3. Semua instance dari kelas enumerasi harus dicantumkan secara eksplisit di kelas enumerasi, jika tidak, kelas enumerasi ini tidak akan pernah dapat menghasilkan instance. Ketika instance ini terdaftar, sistem secara otomatis menambahkan modifikasi final statis publik tanpa perlu pemrogram menambahkannya secara eksplisit.
},KAM{
String publik keLocaleString(){
kembali "Kamis";
}
},JUMAT{
String publik keLocaleString(){
kembalikan "Jumat";
}
},DUDUK{
String publik keLocaleString(){
kembali "Sabtu";
}
},MATAHARI{
String publik keLocaleString(){
kembalikan "Minggu";
}
};
String abstrak publik toLocaleString();
}
int metode bandingkanTo
String name() mengembalikan nama instance enumerasi
int ordinal() mengembalikan indeks nilai pencacahan dalam pencacahan
String toString() mengembalikan nama instance enumerasi yang lebih umum digunakan daripada nama
nilai statis publik()
}
Lampu pribadi(String berlawanan,String berikutnya,boolean menyala){
ini.berlawanan = berlawanan;
ini.berikutnya = selanjutnya;
this.lighted = menyala;
}
/*Apakah lampu saat ini berwarna hijau*/
boolean pribadi menyala;
/*Arah yang sesuai dimana lampu saat ini berwarna hijau pada saat yang sama*/
pribadi String berlawanan;
/*Lampu berikutnya berubah menjadi hijau ketika lampu saat ini berubah menjadi merah*/
String pribadi berikutnya;
boolean publik isLighted(){
kembali menyala;
}
/**
* Saat lampu tertentu berubah menjadi hijau, lampu di arahnya juga berubah menjadi hijau.
*/
lampu kekosongan publik(){
this.lighted = benar;
jika(berlawanan != nol){
Lamp.valueOf(berlawanan).light();
}
System.out.println(name() + "Lampunya berwarna hijau, seharusnya ada total 6 arah di bawah ini dimana Anda dapat melihat mobil lewat!");
}
/**
* Saat lampu tertentu berubah menjadi merah, lampu di arah yang bersangkutan juga berubah menjadi merah, dan lampu di arah berikutnya berubah menjadi hijau
* @return Lampu selanjutnya berubah menjadi hijau
*/
Lampu padam umum(){
this.lighted = salah;
jika(berlawanan != nol){
Lamp.valueOf(berlawanan).blackOut();
}
Lampu nextLamp= null;
jika(berikutnya != nol){
nextLamp = Lampu.valueOf(next);
System.out.println("Lampu hijau beralih dari " + nama() + "--------> ke " + berikutnya);
nextLamp.light();
}
kembalikan lampu berikutnya;
}
}