# Hoe u Java-enums kunt gebruiken om constanten in uw code te maken

Met Java-enums kunt u variabelen met vaste waarden maken. Deze worden in hoofdletters geschreven en kunnen niet worden gewijzigd. Ze worden gebruikt om de logica en leesbaarheid van uw code te verbeteren en kunnen u helpen om schone code te maken.

## Wat zijn Java-enums?

In Java verwijst enums naar een speciaal [gegevenstype](https://www.ionos.com/nl-be/digitalguide/websites/webontwikkeling/java-gegevenstypen/) dat binnen conventionele klassen kan worden gebruikt, maar op één belangrijk punt verschilt van conventionele klassen. Een enum is een type variabele met **specifiek gedefinieerde, vaste en dus beperkte waardeopties**. Java-enums zijn constanten die voorkomen dat ongewenste waarden in de code worden gebruikt. Dit zorgt ervoor dat de structuur van de code logisch is en verhoogt de leesbaarheid. De term ‘enum’ komt van het woord ‘enumeration’ (opsomming).

## Wat is de syntaxis voor Java-enums?

De syntaxis voor Java-enums is altijd hetzelfde gestructureerd en ziet er als volgt uit:

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

Als u dus een enum-klasse wilt definiëren, begint u met het sleutelwoord `enum`, dat u gebruikt in plaats van `class` of `interface`. Geef vervolgens de speciale klasse een naam en plaats de gewenste toegestane constanten tussen accolades. De constanten worden **altijd in hoofdletters geschreven** en van elkaar gescheiden door komma’s.

## Hoe maak je een klasse met enum

Een manier om Java-enums te gebruiken, is door een lijst te maken met de maanden van het jaar. Zo’n lijst zou slechts twaalf mogelijke waarden bevatten. Als er op een later moment een variabele van het type `Months` nodig is, zijn alleen de gedefinieerde constanten toegestaan. Hier volgt hoe u de code schrijft:

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

Om een variabele van het type `Months` te declareren, wijs je deze een waarde toe en gebruik je het Java-commando `System.out.println` om deze weer te geven. In de code ziet dit er als volgt uit:

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

## Hoe Java-enums binnen een klasse te gebruiken

Je kunt Java-enums ook binnen een klasse gebruiken. Voor het bovenstaande voorbeeld zou dat er als volgt uitzien:

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

## Hoe gebruik je de `values()` -methode om alle constanten op te vragen?

Als u alle beschikbare waarden wilt weergeven, kunt u de methode `values()` gebruiken. Deze geeft constanten weer in de vorm van een array. Hier volgt hoe u dit kunt doen met ons voorbeeld hierboven:

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

## Hoe Java-enums te gebruiken met `switch()`

Je kunt Java-enums ook combineren met andere methoden. Zo ziet het eruit wanneer het wordt gecombineerd met `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/nl-be/digitalguide/websites/webontwikkeling/java-enums/](https://www.ionos.com/nl-be/digitalguide/websites/webontwikkeling/java-enums/) for AI/LLM consumption.