Java Enums


Opsommings

An enumis 'n spesiale "klas" wat 'n groep konstantes (onveranderlike veranderlikes, soos finalveranderlikes) verteenwoordig.

Om 'n te skep enum, gebruik die enumsleutelwoord (in plaas van klas of koppelvlak), en skei die konstantes met 'n komma. Let daarop dat hulle in hoofletters moet wees:

Voorbeeld

enum Level {
  LOW,
  MEDIUM,
  HIGH
}

Jy kan toegang tot enumkonstantes kry met die puntsintaksis :

Level myVar = Level.MEDIUM;

Enum is kort vir "enumerations", wat "spesifiek gelys" beteken.


Enum binne 'n klas

Jy kan ook 'n enumbinne 'n klas hê:

Voorbeeld

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

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

Die uitset sal wees:

MEDIUM

Enum in 'n Switch Statement

Enums word dikwels in switchstellings gebruik om na te gaan vir ooreenstemmende waardes:

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

Die uitset sal wees:

Medium level

Loop deur 'n Enum

Die enum-tipe het 'n values()metode wat 'n skikking van alle enumkonstantes terugstuur. Hierdie metode is nuttig wanneer jy deur die konstantes van 'n enum wil lus:

Voorbeeld

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

Die uitset sal wees:

LOW
MEDIUM
HIGH

Verskil tussen Enums en Klasse

'n enumBlikkie het, net soos 'n class, eienskappe en metodes. Die enigste verskil is dat enum-konstantes is public, staticen final (onveranderbaar - kan nie oorskryf word nie).

An enumkan nie gebruik word om voorwerpe te skep nie, en dit kan nie ander klasse uitbrei nie (maar dit kan koppelvlakke implementeer).

Waarom en wanneer om enums te gebruik?

Gebruik opsommings wanneer jy waardes het wat jy weet nie gaan verander nie, soos maande dae, dae, kleure, pak kaarte, ens.