Kelas enumerasi enum diperkenalkan di JDK1.5. Sebelumnya, public static final int enum_value digunakan sebagai pengganti kelas enumerasi. Kelas enumerasi enum adalah kelas khusus yang mewarisi kelas java.lang.Enum secara default. Seperti kelas biasa lainnya, enum juga dapat memiliki variabel anggota, metode, dan konstruktor, serta dapat mengimplementasikan satu atau lebih antarmuka. Bedanya adalah:
1. Jika ada konstruktor harus dihias dengan private.
2. Kelas enumerasi tidak dapat memperoleh subkelas.
3. Semua instance kelas enumerasi harus didefinisikan dengan jelas pada baris pertama. Sistem akan secara otomatis menambahkan modifikasi final statis publik ke instance ini tanpa perlu pemrogram mendefinisikannya secara eksplisit.
4. Kelas enumerasi menyediakan metode value() secara default untuk memfasilitasi penelusuran semua nilai enumerasi.
Metode di enum (metode disediakan oleh Enum):
public final int bandingkanTo(E o) Membandingkan nilai enumerasi dari tipe yang sama
public final int ordinal() Mengembalikan nilai indeks pencacahan, dimulai dari nol untuk nilai pencacahan pertama.
public final String name() mengembalikan nama instance enumerasi
public String toString() mengembalikan nama keluaran enumerasi
Contoh lampu lalu lintas
public enum TrafficLight { MERAH("Merah"), KUNING("Kuning"), HIJAU("Hijau"); private TrafficLight(Nama string) { this.name = nama; nama; } public void jude(lampu TrafficLight) { saklar (lampu) { case MERAH: System.out.println("stop"); System.out.println("pergi"); break; case HIJAU: System.out.println("tunggu"); default: break; } } public static void main(String[] args) { untuk (TrafficLight e : TrafficLight.values()) { System.out.println(e.nama());