Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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
languagejava
titleEnum for himmelretningene
linenumberstrue
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
languagejava
titleEnum for ukedagene
linenumberstrue
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"