...
Et typisk bruksområde for en enum er himmelretninger. Dersom vi ønsker å definere himmelretningene North, South, East og West på en annen måte enn f.eks. bare ved hjelp av forbokstaven deres, kan dette gjøres ved hjelp av en enum.
Code Block |
---|
language | java |
---|
title | Enum for himmelretningene |
---|
linenumbers | true |
---|
| enum CardinalDirection {
NORTH, SOUTH, EAST, WEST;
}
// Himmelretningene kan nå brukes som konstanter i koden og f.eks i statements
CardinalDirection dir1 = CardinalDirection.NORTH;
CardinalDirection dir2 = CardinalDirection.EAST;
if (dir1 == CardinalDirection.WEST) { ... }
|
|
---|
Man kan også gi enum-konstantene verdier, som kan hentes ved behov for å presentere konstantene som tekst, tall eller andre datatyper. Man kan også knytte metoder til enum-konstanter.
Det faktum at vi har disse mulighetene gjør at vi egentlig kan se på enum-konstantene som noe i retning av "hybrid-objekter". Enum-konstantene kan ha innhold som felt og metoder, akkurat som vanlige objekter. Men man har allerede definert mengden av konstanter og vi kan ikke forandre de underveis i utførelsen av koden.
Code Block |
---|
language | java |
---|
title | Enum for ukedagene |
---|
linenumbers | true |
---|
| public enum Day {
MONDAY("Mon"), TUESDAY("Tue"), WEDNESDAY("Wed"), THURSDAY("Thu"), FRIDAY("Fri"), SATURDAY("Sat"), SUNDAY("Sun");
//Felt som definerer navnet på verien(e) konstantene får tildelt ovenfor
String short;
//Konstruktør som setter forkortelsene
private Day (String short) {
this.short = short;
}
// Metode for å hente verdien "short"
public String getShort() {
return this.short;
}
}
// Vi kan da hente en string-verdi til hver av konstantene
Day weekday = Day.MONDAY;
System.out.println(weekday.getShort()); //Skriver ut "Mon" |
|
---|