Med Java-enu­me­ra­tio­ner kan du skapa variabler med fasta värden. Dessa skrivs med versaler och kan inte ändras. De används för att förbättra logiken och läs­bar­he­ten i din kod och kan hjälpa dig att skapa ren kod.

Vad är Java-enu­me­ra­tio­ner?

I Java avser enums en speciell datatyp som kan användas inom kon­ven­tio­nel­la klasser men som skiljer sig från kon­ven­tio­nel­la klasser i ett viktigt avseende. En enum är en typ av variabel som har specifikt de­fi­ni­e­ra­de, fasta och därför be­grän­sa­de vär­de­al­ter­na­tiv. Java-enums är kon­stan­ter som för­hind­rar att oönskade värden används i koden. Detta sä­ker­stäl­ler att kodens struktur är logisk och ökar läs­bar­he­ten. Termen “enum” kommer från ordet “enu­me­ra­tion” (upp­räk­ning).

Vad är syntaxen för Java-enu­me­ra­tio­ner?

Syntaxen för Java-enu­me­ra­tio­ner är alltid struk­tu­re­rad på samma sätt och ser ut så här:

enum NameOfTheClass {
	VALUE1,
	VALUE2,
	VALUE3
}
java

Om du vill definiera en enum-klass börjar du med nyc­kelor­det enum, som du använder istället för class eller interface. Därefter namnger du den speciella klassen och placerar de önskade tillåtna kon­stan­ter­na inom klamrarna. Kon­stan­ter­na skrivs alltid med versaler och separeras från varandra med kom­ma­tec­ken.

Hur man skapar en klass med enum

Ett sätt att använda Java-enu­me­ra­tio­ner är att skapa en lista med årets månader. En sådan lista skulle bara innehålla tolv möjliga värden. Om en variabel av typen Months behövs vid ett senare tillfälle är det bara de de­fi­ni­e­ra­de kon­stan­ter­na som är tillåtna. Så här skriver du koden:

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

För att deklarera en variabel av typen Months, tilldela den ett värde och använd Java-kommandot System.out.println för att visa den. I koden ser det ut så här:

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

Hur man använder Java-enu­me­ra­tio­ner inom en klass

Du kan också använda Java-enu­me­ra­tio­ner inom en klass. För exemplet ovan skulle det se ut så här:

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

Hur man använder values() -metoden för att söka efter alla kon­stan­ter

Om du vill visa alla till­gäng­li­ga värden kan du använda metoden values(). Denna metod visar kon­stan­ter i form av en array. Så här gör du med vårt exempel ovan:

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

Hur man använder Java-enu­me­ra­tio­ner med switch()

Du kan också kombinera Java-enu­me­ra­tio­ner med andra metoder. Så här ser det ut när det kom­bi­ne­ras med switch():

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.
		}
	}
}
java
Gå till huvudmeny