Z Java enums lahko ustvarite spre­men­ljiv­ke s fiksnimi vre­dnost­mi. Te so zapisane z velikimi črkami in jih ni mogoče spre­me­ni­ti. Upo­ra­blja­jo se za iz­bolj­ša­nje logike in ber­lji­vo­sti vašega kode in vam lahko pomagajo ustvariti čisto kodo.

Kaj so Java enumi?

V Javi se izraz »enums« nanaša na posebno vrsto podatkov, ki se lahko uporablja v kon­ven­ci­o­nal­nih razredih, vendar se od njih razlikuje v enem ključnem vidiku. Enum je vrsta spre­men­ljiv­ke, ki ima posebej opre­de­lje­ne, fiksne in zato omejene možnosti vrednosti. Java enums so konstante, ki pre­pre­ču­je­jo uporabo neželenih vrednosti v kodi. To za­go­ta­vlja logično strukturo kode in povečuje ber­lji­vost. Izraz »enum« izhaja iz besede »enu­me­ra­ti­on« (šte­vil­če­nje).

Kakšna je sintaksa za Java enums?

Sintaksa za Java enums je vedno enako struk­tu­ri­ra­na in izgleda takole:

enum NameOfTheClass {
	VALUE1,
	VALUE2,
	VALUE3
}
java

Če torej želite de­fi­ni­ra­ti razred enum, začnite s ključno besedo enum, ki jo uporabite namesto class ali interface. Nato po­i­me­nuj­te posebni razred in v oklepajih navedite želene dovoljene konstante. Konstante so vedno zapisane z velikimi črkami in ločene med seboj z vejicami.

Kako ustvariti razred z enumom

Eden od načinov uporabe Java enumov je ustvar­ja­nje seznama, ki vsebuje mesece v letu. Takšen seznam bi vseboval le dvanajst možnih vrednosti. Če je kasneje potrebna spre­men­ljiv­ka tipa Months, so dovoljene le de­fi­ni­ra­ne konstante. Tako napišete kodo:

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

Da bi de­kla­ri­ra­li spre­men­ljiv­ko tipa Months, ji dodelite vrednost in jo prikažite z uporabo Java ukaza System.out.println. V kodi to izgleda takole:

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

Kako upo­ra­blja­ti Java enums znotraj razreda

Java enums lahko upo­ra­blja­te tudi znotraj razreda. V zgornjem primeru bi to izgledalo takole:

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

Kako uporabiti metodo values() za po­i­zve­do­va­nje vseh konstant

Če želite prikazati vse raz­po­lo­žlji­ve vrednosti, lahko uporabite metodo values(). Ta izpiše konstante v obliki matrike. Tako to storite v zgornjem primeru:

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

Kako upo­ra­blja­ti Java enums z switch()

Java enume lahko kom­bi­ni­ra­te tudi z drugimi metodami. Tako izgleda, ko je kom­bi­ni­ran z 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
Go to Main Menu