Med Java-enums kan du oprette variabler med faste værdier. Disse skrives med store bogstaver og kan ikke ændres. De bruges til at forbedre logikken og læs­bar­he­den i din kode og kan hjælpe dig med at oprette ren kode.

Hvad er Java-enums?

I Java henviser enums til en særlig datatype, der kan bruges inden for kon­ven­tio­nel­le klasser, men som adskiller sig fra kon­ven­tio­nel­le klasser på ét vigtigt punkt. En enum er en type variabel, der har specifikt de­fi­ne­re­de, faste og derfor be­græn­se­de vær­di­indstil­lin­ger. Java-enums er kon­stan­ter, der for­hin­drer uønskede værdier i at blive brugt i koden. Dette sikrer, at kodens struktur er logisk og øger læs­bar­he­den. Udtrykket ‘enum’ kommer fra ordet ‘enu­me­ra­tion’ (opregning).

Hvad er syntaksen for Java-enums?

Syntaksen for Java-enums er altid struk­tu­re­ret på samme måde og ser således ud:

enum NameOfTheClass {
	VALUE1,
	VALUE2,
	VALUE3
}
java

Så hvis du vil definere en enum-klasse, skal du starte med nøg­le­or­det enum, som du bruger i stedet for class eller interface. Giv derefter den specielle klasse et navn, og placer de ønskede tilladte kon­stan­ter i de krøllede pa­ren­te­ser. Kon­stan­ter­ne skrives altid med store bogstaver og adskilles fra hinanden med kommaer.

Sådan oprettes en klasse med enum

En måde, du kan bruge Java-enums på, er at oprette en liste, der in­de­hol­der årets måneder. En sådan liste vil kun indeholde tolv mulige værdier. Hvis der senere er brug for en variabel af typen Months, er det kun de de­fi­ne­re­de kon­stan­ter, der er tilladt. Sådan skriver du koden:

enum Months {
	JANUARY,
	FEBRUARY,
	MARCH,
	APRIL,
	MAY,
	JUNE,
	JULY,
	AUGUST,
	SEPTEMBER,
	OCTOBER,
	NOVEMBER,
	DECEMBER
}
java

For at deklarere en variabel af typen Months skal du tildele den en værdi og bruge Java-kom­man­do­en System.out.println til at vise den. Det ser således ud i koden:

public class Main {
	public static void main(String[] args) {
Months month = Months.APRIL;
System.out.println(month);
	}
}
java

Sådan bruges Java-enums inden for en klasse

Du kan også bruge Java-enums inden for en klasse. I eksemplet ovenfor ville det se sådan ud:

public class Main {
	enum Months {
	JANUARY,
	FEBRUARY,
	MARCH,
	APRIL,
	MAY,
	JUNE,
	JULY,
	AUGUST,
	SEPTEMBER,
	OCTOBER,
	NOVEMBER,
	DECEMBER
}
		public static void main(String[] args) {
Months month = Months.APRIL;
System.out.println(month);
		}
}
java

Sådan bruges values() -metoden til at søge efter alle kon­stan­ter

Hvis du vil vise alle til­gæn­ge­li­ge værdier, kan du bruge metoden values(). Dette udgiver kon­stan­ter i form af en matrix. Sådan gør du med vores eksempel ovenfor:

enum Months {
	JANUARY,
	FEBRUARY,
	MARCH,
	APRIL,
	MAY,
	JUNE,
	JULY,
	AUGUST,
	SEPTEMBER,
	OCTOBER,
	NOVEMBER,
	DECEMBER
}
public class Main {
	public static void main(String[] args) {
for (Months month : Months.values()) {
System.out.println(month);
		}
	}
}
java

Sådan bruges Java-enums med switch()

Du kan også kombinere Java-enums med andre metoder. Sådan ser det ud, når det kom­bi­ne­res med switch():

enum Months {
	JANUARY,
	FEBRUARY,
	MARCH,
	APRIL,
	MAY,
	JUNE,
	JULY,
	AUGUST,
	SEPTEMBER,
	OCTOBER,
	NOVEMBER,
	DECEMBER
}
public class Main {
	public static void main(String[] args) {
		Months month = Months.APRIL;
switch (month) {
case APRIL:
System.out.println("The outdoor pool is closed.");
break;
case MAY:
System.out.println("The outdoor pool is closed.");
break;
case JUNE:
System.out.println("The outdoor pool eagerly awaits your visit!");
break;
// You can now try this out for all months.
		}
	}
}
java
Gå til ho­ved­me­nu­en