คำตอบ: ได้
Enum สามารถประกาศเป็น Member ของ Class ได้ (Member Enum) โดยอัตโนมัติเป็น static
ตัวอย่าง
public class EnumerationExample {
enum Enum { Mango, Banana, Orange, Grapes, Thursday, Apple }
public static void main(String args[]) {
Enum[] constants = Enum.values();
System.out.println("Value of constants:");
for (Enum d : constants) System.out.println(d);
}
}
ผลลัพธ์
Value of constants: Mango Banana Orange Grapes Thursday Apple
Enum ที่ซับซ้อน (มี Field, Constructor, Method)
enum Vehicles {
ACTIVA125, ACTIVA5G, ACCESS125, VESPA, TVSJUPITER;
int i;
Vehicles() {}
public void enumMethod() { System.out.println("Current value: " + this); }
}
public class Sam {
public static void main(String args[]) {
Vehicles[] vehicles = Vehicles.values();
for (Vehicles veh : vehicles) System.out.println(veh);
vehicles[3].enumMethod();
}
}
ผลลัพธ์
ACTIVA125 ACTIVA5G ACCESS125 VESPA TVSJUPITER Current value: VESPA
สรุป
- Enum ใน Class เป็น implicit static
- เข้าถึงได้:
OuterClass.EnumConstantหรือEnumConstantภายใน Class เดียวกัน - สามารถมี Field, Constructor, Method ได้