Java-enumien avulla voit luoda muuttujia, joilla on kiinteät arvot. Ne kir­joi­te­taan isoilla kir­jai­mil­la, eikä niitä voi muuttaa. Niitä käytetään pa­ran­ta­maan koodin loo­gi­suut­ta ja luet­ta­vuut­ta, ja ne voivat auttaa sinua luomaan siistiä koodia.

Mitä ovat Java-enumit?

Java-kielessä enumit viit­taa­vat eri­tyi­seen tie­to­tyyp­piin, jota voidaan käyttää ta­van­omai­sis­sa luokissa, mutta joka eroaa ta­van­omai­sis­ta luokista yhdessä kes­kei­ses­sä suhteessa. Enum on muut­tu­ja­tyyp­pi, jolla on tarkasti mää­ri­tel­lyt, kiinteät ja siten ra­joi­te­tut arvo-optiot. Java-enumit ovat vakioita, jotka estävät ei-toi­vot­tu­jen arvojen käytön koodissa. Tämä varmistaa koodin rakenteen loo­gi­suu­den ja parantaa luet­ta­vuut­ta. Termi ”enum” tulee sanasta ”enu­me­ra­tion” (luet­te­loin­ti).

Mikä on Java-enumien syntaksi?

Java-enumien syntaksi on aina ra­ken­teel­taan sama ja näyttää tältä:

enum NameOfTheClass {
	VALUE1,
	VALUE2,
	VALUE3
}
java

Jos siis haluat mää­ri­tel­lä enum-luokan, aloita avain­sa­nal­la enum, jota käytät class tai interface sijaan. Nimeä sitten erityinen luokka ja sijoita halutut sallitut vakiot aal­to­sul­kei­siin. Vakiot kir­joi­te­taan aina isoilla kir­jai­mil­la ja erotetaan toi­sis­taan pilkuilla.

Kuinka luoda luokka enum-tyypillä

Yksi tapa käyttää Java-enumeja on luoda luettelo, joka sisältää vuoden kuukaudet. Tällainen luettelo si­säl­täi­si vain kak­si­tois­ta mah­dol­lis­ta arvoa. Jos myöhemmin tarvitaan tyypin Months muuttuja, vain mää­ri­tel­lyt vakiot ovat sal­lit­tu­ja. Koodi kir­joi­te­taan seu­raa­vas­ti:

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

Julista tyypin Months muuttuja, anna sille arvo ja näytä se Java-ko­men­nol­la System.out.println. Koodissa tämä näyttää tältä:

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

Java-enumien käyttö luokassa

Voit käyttää Java-enumeja myös luokassa. Edellä olevassa esi­mer­kis­sä se näyttäisi tältä:

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

Kuinka käyttää values() kaikkien vakioiden kyselyyn

Jos haluat näyttää kaikki käy­tet­tä­vis­sä olevat arvot, voit käyttää values(). Tämä tulostaa va­kio­ar­vot taulukon muodossa. Näin se tehdään yllä olevan esimerkin avulla:

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

Java-enumien käyttö switch() kanssa

Voit myös yhdistää Java-enumit muihin me­ne­tel­miin. Näin se näyttää, kun se yh­dis­te­tään switch()een:

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
Siirry pää­va­lik­koon