public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }
season
typu Season
může být uložena hodnota WINTER
.
převzato z The Java™ Tutorials Enum Types
Definice výčtového typu "den v týdnu":
public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }
Použití "dne v týdnu":
public void tellItLikeItIs(Day day) { switch (day) { case MONDAY: System.out.println("Mondays are bad."); break; // case FRIDAY: System.out.println("Fridays are better."); break; // case SATURDAY: case SUNDAY: System.out.println("Weekends are best."); break; // default: System.out.println("Midweek days are so-so."); break; } }
public static final int MONDAY = 0; public static final int TUESDAY = 1; public static final int WEDNESDAY = 2;
metoda přijímající den v týdnu musí mít parametr typu int
a po zadání libovolného jiného int
než z povoleného výčtu nastane problém.
snadno se při kopírování (přidávání dalších) hodnot spleteme a máme dva dny v týdnu stejné — a nikdo na to nemusí přijít.
java.lang.Enum
.
převzato z The Java™ Tutorials Enum Types
public enum Planet { // pevné hodnoty výčtu, ale vč. nastavení atributů MERCURY (3.303e+23, 2.4397e6), VENUS (4.869e+24, 6.0518e6), EARTH (5.976e+24, 6.37814e6), // atributy private final double mass; // in kilograms private final double radius; // in meters // konstruktor nastavující atributy Planet(double mass, double radius) { this.mass = mass; this.radius = radius; } private double mass() { return mass; } private double radius() { return radius; } // universal gravitational constant (m3 kg-1 s-2) public static final double G = 6.67300E-11; // metody k použití double surfaceGravity() { return G * mass / (radius * radius); } double surfaceWeight(double otherMass) { return otherMass * surfaceGravity(); } public static void main(String[] args) { if (args.length != 1) { System.err.println("Usage: java Planet <earth_weight>"); System.exit(-1); } double earthWeight = Double.parseDouble(args[0]); double mass = earthWeight/EARTH.surfaceGravity(); // po hodnotách výčtu se dá iterovat for (Planet p : Planet.values()) System.out.printf("Your weight on %s is %f%n", p, p.surfaceWeight(mass)); } }