Enumerations
Definition
- Klasse, von der nur bestimmte Objekte erzeugt werden können
public class Direction {
public static final Direction NORTH = new Direction();
public static final Direction EAST = new Direction();
public static final Direction SOUTH = new Direction();
public static final Direction WEST = new Direction();
private Direction() {
}
}
public enum Direction {
NORTH, EAST, SOUTH, WEST;
}
Parametrisiert
public enum NumeralSystem {
BINARY(2), OCTAL(8), DECIMAL(10), HEXADECIMAL(16);
private final int base;
NumeralSystem(int base) {
this.base = base;
}
public int toDecimal(String number) {
return Integer.parseInt(number, base);
}
}
Enum
enum extended automatisch Enum
public enum Direction {
NORTH, EAST, SOUTH, WEST;
}
Direction.valueOf("NORTH") => Direction.NORTH
for (Direction direction : Direction.values())
System.out.printf("%d %s %n", direction.ordinal(), direction.name());
0 NORTH
1 EAST
2 SOUTH
3 WEST
Anwendung
- konstante, komplexe Daten
- benannte Konstanten statt Strings