|
Seit Java 5 gibt es neben Klassen und Interfaces auch den Aufzählungstyp "Enumeration Type", kurz "enum".
Es handelt sich um die Aufzählung von konstanten Werten.
Hier ein Beispiel für ein Javaprogramm mit einer Enumeration
public class Test {
public enum Ampelphase {ROT, ROTGELB, GRUEN, GELB};
public static String wasMachen(Ampelphase ap) {
String message = "";
switch (ap) {
case ROT:
message = "Stop";
break;
case ROTGELB:
message = "Losfahren";
break;
case GRUEN:
message = "Durchfahren";
break;
case GELB:
message = "Anhalten";
break;
}
return message;
}
public static void main(String[] args) {
for (Ampelphase ap:Ampelphase.values()){
System.out.println("Ampelphase: "+ap);
}
System.out.println("Bei Rot: "+wasMachen(Ampelphase.ROT));
}
}
Ampelphase: ROT Ampelphase: ROTGELB Ampelphase: GRUEN Ampelphase: GELB Bei Rot: Stop Komplexere Enum-Typen mit Eigenschaften und Methoden. Achtung, sie benötigen einen Konstruktor!
Die Enum-Klasse für Ampelphase, Phasendauer in Sekunden und was da zu tun ist.
public enum Ampelphasen {
ROT(60,"stehen bleiben"), ROTGELB(30,"losfahren"), GRUEN(60,"durchfahren"), GELB(30,"anhalten");
private final int phasendauer;
private final String wasTun;
private Ampelphasen(int phasendauer, String wasTun){
this.phasendauer=phasendauer;
this.wasTun = wasTun;
}
public int getPhasendauer(){
return phasendauer;
}
public String getWasTun(){
return wasTun;
}
}
Testklasse zum Starten
public class Test {
public static void main(String[] args) {
for (Ampelphasen ap : Ampelphasen.values()) {
System.out.println("Die Ampel ist " + ap.getPhasendauer()
+ " Sekunden " + ap + " bitte " + ap.getWasTun());
}
}
}
Die Ampel ist 60 Sekunden ROT bitte stehen bleiben Die Ampel ist 30 Sekunden ROTGELB bitte losfahren Die Ampel ist 60 Sekunden GRUEN bitte durchfahren Die Ampel ist 30 Sekunden GELB bitte anhalten |