# Sådan bruger du Java-enums til at oprette konstanter i din kode

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æsbarheden 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](https://www.ionos.com/da-dk/digitalguide/websteder/webudvikling/java-datatyper/), der kan bruges inden for konventionelle klasser, men som adskiller sig fra konventionelle klasser på ét vigtigt punkt. En enum er en type variabel, der har **specifikt definerede, faste og derfor begrænsede værdiindstillinger**. Java-enums er konstanter, der forhindrer uønskede værdier i at blive brugt i koden. Dette sikrer, at kodens struktur er logisk og øger læsbarheden. Udtrykket ‘enum’ kommer fra ordet ‘enumeration’ (opregning).

## Hvad er syntaksen for Java-enums?

Syntaksen for Java-enums er altid struktureret på samme måde og ser således ud:

```java
enum NameOfTheClass {
	VALUE1,
	VALUE2,
	VALUE3
}
```

Så hvis du vil definere en enum-klasse, skal du starte med nøgleordet `enum`, som du bruger i stedet for `class` eller `interface`. Giv derefter den specielle klasse et navn, og placer de ønskede tilladte konstanter i de krøllede parenteser. Konstanterne **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 indeholder å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 definerede konstanter, der er tilladt. Sådan skriver du koden:

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

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

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

## 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:

```java
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);
		}
}
```

## Sådan bruges `values()` -metoden til at søge efter alle konstanter

Hvis du vil vise alle tilgængelige værdier, kan du bruge metoden `values()`. Dette udgiver konstanter i form af en matrix. Sådan gør du med vores eksempel ovenfor:

```java
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);
		}
	}
}
```

## Sådan bruges Java-enums med `switch()`

Du kan også kombinere Java-enums med andre metoder. Sådan ser det ud, når det kombineres med `switch()`:

```java
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.
		}
	}
}
```


This is a markdown version of: [https://www.ionos.com/da-dk/digitalguide/websteder/webudvikling/java-enumerationer/](https://www.ionos.com/da-dk/digitalguide/websteder/webudvikling/java-enumerationer/) for AI/LLM consumption.