enums

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