# Kuinka käyttää Java-enumeja vakioiden luomiseen koodissasi

Java-enumien avulla voit luoda muuttujia, joilla on kiinteät arvot. Ne kirjoitetaan isoilla kirjaimilla, eikä niitä voi muuttaa. Niitä käytetään parantamaan koodin loogisuutta ja luettavuutta, ja ne voivat auttaa sinua luomaan siistiä koodia.

## Mitä ovat Java-enumit?

Java-kielessä enumit viittaavat erityiseen [tietotyyppiin](https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/java-tietotyypit/), jota voidaan käyttää tavanomaisissa luokissa, mutta joka eroaa tavanomaisista luokista yhdessä keskeisessä suhteessa. Enum on muuttujatyyppi, jolla on **tarkasti määritellyt, kiinteät ja siten rajoitetut arvo-optiot**. Java-enumit ovat vakioita, jotka estävät ei-toivottujen arvojen käytön koodissa. Tämä varmistaa koodin rakenteen loogisuuden ja parantaa luettavuutta. Termi ”enum” tulee sanasta ”enumeration” (luettelointi).

## Mikä on Java-enumien syntaksi?

Java-enumien syntaksi on aina rakenteeltaan sama ja näyttää tältä:

```java
enum NameOfTheClass {
	VALUE1,
	VALUE2,
	VALUE3
}
```

Jos siis haluat määritellä enum-luokan, aloita avainsanalla `enum`, jota käytät `class` tai `interface` sijaan. Nimeä sitten erityinen luokka ja sijoita halutut sallitut vakiot aaltosulkeisiin. Vakiot **kirjoitetaan aina isoilla kirjaimilla** ja erotetaan toisistaan pilkuilla.

## Kuinka luoda luokka enum-tyypillä

Yksi tapa käyttää Java-enumeja on luoda luettelo, joka sisältää vuoden kuukaudet. Tällainen luettelo sisältäisi vain kaksitoista mahdollista arvoa. Jos myöhemmin tarvitaan tyypin `Months` muuttuja, vain määritellyt vakiot ovat sallittuja. Koodi kirjoitetaan seuraavasti:

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

Julista tyypin `Months` muuttuja, anna sille arvo ja näytä se Java-komennolla `System.out.println`. Koodissa tämä näyttää tältä:

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

## Java-enumien käyttö luokassa

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

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

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

Jos haluat näyttää kaikki käytettävissä olevat arvot, voit käyttää `values()`. Tämä tulostaa vakioarvot taulukon muodossa. Näin se tehdään yllä olevan esimerkin avulla:

```java
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-enumien käyttö `switch()` kanssa

Voit myös yhdistää Java-enumit muihin menetelmiin. Näin se näyttää, kun se yhdistetään `switch()`een:

```java
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.
		}
	}
}
```


This is a markdown version of: [https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/java-luettelot/](https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/java-luettelot/) for AI/LLM consumption.