Werken met Enum in Java
Laten we verder gaan met een zeer interessante en, nog belangrijker, onderscheidende datastructuur - enum.
Laten we kijken naar het aanmaken van een enum. Het aanmaken van een enum verschilt aanzienlijk van andere datastructuren, omdat dit gebeurt op het klasseniveau:
DaysOfTheWeek.java
123456789public enum DaysOfTheWeek { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }
Praktische Toepassing
Enum is nodig zodat u eenvoudig naar de constante kunt verwijzen. Omdat het een lijst van constanten is, krijgt u er als volgt toegang toe:
Main.java
123456789101112131415161718package com.example; public class Main { public static void main(String[] args) { Days today = Days.MONDAY; System.out.println(today); } } enum Days { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }
Hier krijgen we eenvoudig toegang tot de enum-constante om te bepalen welke dag het vandaag is. In plaats van veel verschillende constanten te maken, slaan we gewoon een array van constanten op in de enum. Dit is handig en zeer praktisch. Bijvoorbeeld, in een van de vorige uitdagingen hadden we afdelingsnamen kunnen opslaan in een enum en de constante als sleutel kunnen gebruiken.
Laten we naar een voorbeeld kijken:
Main.java
12345678910111213141516171819202122232425262728293031323334353637package com.example; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class Main { public static void main(String[] args) { List<String> marketingEmployees = new ArrayList<>(); marketingEmployees.add("Michael"); marketingEmployees.add("Alice"); marketingEmployees.add("Jimmy"); List<String> developerEmployees = new ArrayList<>(); developerEmployees.add("Bob"); developerEmployees.add("John"); developerEmployees.add("Ryan"); List<String> analyticsEmployees = new ArrayList<>(); analyticsEmployees.add("Alexander"); analyticsEmployees.add("Ben"); Map<Departments, List<String>> company = new HashMap<>(); company.put(Departments.MARKETING, marketingEmployees); company.put(Departments.DEVELOPMENT, developerEmployees); company.put(Departments.ANALYTICS, analyticsEmployees); System.out.println("Company: " + company); } } enum Departments { MARKETING, DEVELOPMENT, ANALYTICS }
Conversie naar een Array
Overigens kun je ook alle constante waarden uit een enum ophalen als een array met behulp van de methode values().
Bekijk het volgende voorbeeld:
Main.java
12345678910111213package com.example; public class Main { public static void main(String[] args) { Days[] array = Days.values(); Days monday = array[1]; System.out.println(monday); } } enum Days { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }
Velden en methoden declareren in enums
Je kunt ook velden en methoden declareren in enums.
Laten we een voorbeeld van een verkeerslicht bekijken:
Main.java
12345678910111213enum TrafficLight { RED("Stop"), YELLOW("Slow down"), GREEN("Go"); private final String action; TrafficLight(String action) { this.action = action; } public String getAction() { return action; } }
In enums werken methoden iets anders. Omdat het constanten zijn, kunnen ze niet worden gewijzigd. Daarom voegen we velden toe in de constructor van deze enum, waarna we de methode getAction() definiëren die direct de uit te voeren actie voor een specifiek verkeerslicht retourneert. Zoals je ziet, geven we deze actie direct op in de enum bij het opsommen van de constanten.
Laten we een voorbeeld bekijken van het aanroepen van zo'n methode:
Main.java
1234567891011121314151617181920212223package com.example; public class Main { public static void main(String[] args) { TrafficLight currentLight = TrafficLight.RED; String currentAction = currentLight.getAction(); System.out.println("Action: " + currentAction); } } enum TrafficLight { RED("Stop"), YELLOW("Slow down"), GREEN("Go"); private final String action; TrafficLight(String action) { this.action = action; } public String getAction() { return action; } }
Zoals te zien is, werd met behulp van de methode getAction() direct de te nemen actie voor een specifiek verkeerslicht verkregen. U kunt RED veranderen in elke andere kleur en het resultaat observeren.
Methoden en velden in enums worden minder vaak gebruikt, maar deze functionaliteit is aanwezig en het is goed hiervan op de hoogte te zijn. Meer informatie over enums is te vinden in de Officiële Java-documentatie
Voordelen van Enum in Java
- Verbeterde leesbaarheid: het vervangen van numerieke constanten en stringwaarden door benoemde waarden verhoogt de leesbaarheid van de code;
- Typeveiligheid: de compiler waarborgt typeveiligheid bij het werken met enums, waardoor typegerelateerde fouten worden voorkomen;
- Beperkte set waarden: enums bieden een vaste set waarden, wat de voorspelbaarheid van de code vergroot;
- Mogelijkheid tot toevoegen van methoden en velden: enums kunnen methoden en velden bevatten, waardoor ze krachtiger zijn dan eenvoudige enumeraties.
1. Wat is een enum in Java?
2. Hoe declareer je een enum genaamd Months die de maanden van het jaar voorstelt?
3. Hoe verkrijg je een array van alle waarden in een enum genaamd Colors?
4. Welke van de volgende uitspraken over de onderstaande enum is waar?
5. Hoe zou je currentStatus correct vergelijken met Status.ACTIVE? Bekijk de volgende enum:
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
What is the syntax for creating an enum in Java?
Can you show an example of how to use enums in a Java program?
What are some common use cases for enums in Java?
Geweldig!
Completion tarief verbeterd naar 4
Werken met Enum in Java
Veeg om het menu te tonen
Laten we verder gaan met een zeer interessante en, nog belangrijker, onderscheidende datastructuur - enum.
Laten we kijken naar het aanmaken van een enum. Het aanmaken van een enum verschilt aanzienlijk van andere datastructuren, omdat dit gebeurt op het klasseniveau:
DaysOfTheWeek.java
123456789public enum DaysOfTheWeek { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }
Praktische Toepassing
Enum is nodig zodat u eenvoudig naar de constante kunt verwijzen. Omdat het een lijst van constanten is, krijgt u er als volgt toegang toe:
Main.java
123456789101112131415161718package com.example; public class Main { public static void main(String[] args) { Days today = Days.MONDAY; System.out.println(today); } } enum Days { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }
Hier krijgen we eenvoudig toegang tot de enum-constante om te bepalen welke dag het vandaag is. In plaats van veel verschillende constanten te maken, slaan we gewoon een array van constanten op in de enum. Dit is handig en zeer praktisch. Bijvoorbeeld, in een van de vorige uitdagingen hadden we afdelingsnamen kunnen opslaan in een enum en de constante als sleutel kunnen gebruiken.
Laten we naar een voorbeeld kijken:
Main.java
12345678910111213141516171819202122232425262728293031323334353637package com.example; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class Main { public static void main(String[] args) { List<String> marketingEmployees = new ArrayList<>(); marketingEmployees.add("Michael"); marketingEmployees.add("Alice"); marketingEmployees.add("Jimmy"); List<String> developerEmployees = new ArrayList<>(); developerEmployees.add("Bob"); developerEmployees.add("John"); developerEmployees.add("Ryan"); List<String> analyticsEmployees = new ArrayList<>(); analyticsEmployees.add("Alexander"); analyticsEmployees.add("Ben"); Map<Departments, List<String>> company = new HashMap<>(); company.put(Departments.MARKETING, marketingEmployees); company.put(Departments.DEVELOPMENT, developerEmployees); company.put(Departments.ANALYTICS, analyticsEmployees); System.out.println("Company: " + company); } } enum Departments { MARKETING, DEVELOPMENT, ANALYTICS }
Conversie naar een Array
Overigens kun je ook alle constante waarden uit een enum ophalen als een array met behulp van de methode values().
Bekijk het volgende voorbeeld:
Main.java
12345678910111213package com.example; public class Main { public static void main(String[] args) { Days[] array = Days.values(); Days monday = array[1]; System.out.println(monday); } } enum Days { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }
Velden en methoden declareren in enums
Je kunt ook velden en methoden declareren in enums.
Laten we een voorbeeld van een verkeerslicht bekijken:
Main.java
12345678910111213enum TrafficLight { RED("Stop"), YELLOW("Slow down"), GREEN("Go"); private final String action; TrafficLight(String action) { this.action = action; } public String getAction() { return action; } }
In enums werken methoden iets anders. Omdat het constanten zijn, kunnen ze niet worden gewijzigd. Daarom voegen we velden toe in de constructor van deze enum, waarna we de methode getAction() definiëren die direct de uit te voeren actie voor een specifiek verkeerslicht retourneert. Zoals je ziet, geven we deze actie direct op in de enum bij het opsommen van de constanten.
Laten we een voorbeeld bekijken van het aanroepen van zo'n methode:
Main.java
1234567891011121314151617181920212223package com.example; public class Main { public static void main(String[] args) { TrafficLight currentLight = TrafficLight.RED; String currentAction = currentLight.getAction(); System.out.println("Action: " + currentAction); } } enum TrafficLight { RED("Stop"), YELLOW("Slow down"), GREEN("Go"); private final String action; TrafficLight(String action) { this.action = action; } public String getAction() { return action; } }
Zoals te zien is, werd met behulp van de methode getAction() direct de te nemen actie voor een specifiek verkeerslicht verkregen. U kunt RED veranderen in elke andere kleur en het resultaat observeren.
Methoden en velden in enums worden minder vaak gebruikt, maar deze functionaliteit is aanwezig en het is goed hiervan op de hoogte te zijn. Meer informatie over enums is te vinden in de Officiële Java-documentatie
Voordelen van Enum in Java
- Verbeterde leesbaarheid: het vervangen van numerieke constanten en stringwaarden door benoemde waarden verhoogt de leesbaarheid van de code;
- Typeveiligheid: de compiler waarborgt typeveiligheid bij het werken met enums, waardoor typegerelateerde fouten worden voorkomen;
- Beperkte set waarden: enums bieden een vaste set waarden, wat de voorspelbaarheid van de code vergroot;
- Mogelijkheid tot toevoegen van methoden en velden: enums kunnen methoden en velden bevatten, waardoor ze krachtiger zijn dan eenvoudige enumeraties.
1. Wat is een enum in Java?
2. Hoe declareer je een enum genaamd Months die de maanden van het jaar voorstelt?
3. Hoe verkrijg je een array van alle waarden in een enum genaamd Colors?
4. Welke van de volgende uitspraken over de onderstaande enum is waar?
5. Hoe zou je currentStatus correct vergelijken met Status.ACTIVE? Bekijk de volgende enum:
Bedankt voor je feedback!