Java Enums


opsommingen

An enumis een speciale "klasse" die een groep constanten vertegenwoordigt (onveranderlijke variabelen, zoals finalvariabelen).

Om een ​​te maken enum, gebruikt u het enumsleutelwoord (in plaats van klasse of interface) en scheidt u de constanten met een komma. Merk op dat ze in hoofdletters moeten zijn:

Voorbeeld

enum Level {
  LOW,
  MEDIUM,
  HIGH
}

U hebt toegang tot enumconstanten met de puntsyntaxis :

Level myVar = Level.MEDIUM;

Enum is een afkorting voor "enumerations", wat "specifiek vermeld" betekent.


Enum binnen een klasse

Je kunt ook een enumbinnen een klas hebben:

Voorbeeld

public class Main {
  enum Level {
    LOW,
    MEDIUM,
    HIGH
  }

  public static void main(String[] args) {
    Level myVar = Level.MEDIUM; 
    System.out.println(myVar);
  }
}

De uitvoer zal zijn:

MEDIUM

Enum in een Switch-verklaring

Enums worden vaak gebruikt in switchstatements om te controleren op corresponderende waarden:

Voorbeeld

enum Level {
  LOW,
  MEDIUM,
  HIGH
}

public class Main {
  public static void main(String[] args) {
    Level myVar = Level.MEDIUM;

    switch(myVar) {
      case LOW:
        System.out.println("Low level");
        break;
      case MEDIUM:
         System.out.println("Medium level");
        break;
      case HIGH:
        System.out.println("High level");
        break;
    }
  }
}

De uitvoer zal zijn:

Medium level

Loop door een Enum

Het enum-type heeft een values()methode die een array van alle enum-constanten retourneert. Deze methode is handig als u de constanten van een opsomming wilt doorlopen:

Voorbeeld

for (Level myVar : Level.values()) {
  System.out.println(myVar);
}

De uitvoer zal zijn:

LOW
MEDIUM
HIGH

Verschil tussen opsommingen en klassen

Een enumcan heeft, net als een class, attributen en methoden. Het enige verschil is dat enum-constanten zijn public, staticen final (onveranderlijk - kan niet worden overschreven).

An enumkan niet worden gebruikt om objecten te maken en kan geen andere klassen uitbreiden (maar kan wel interfaces implementeren).

Waarom en wanneer Enums gebruiken?

Gebruik opsommingen als je waarden hebt waarvan je weet dat ze niet zullen veranderen, zoals maanddagen, dagen, kleuren, kaartspellen, enz.