# Kuidas kasutada Java enums konstantide loomiseks oma koodis

Java enumitega saate luua muutujaid kindlate väärtustega. Need kirjutatakse suurtähtedega ja neid ei saa muuta. Neid kasutatakse koodi loogika ja loetavuse parandamiseks ning need aitavad teil luua puhtamat koodi.

## Mis on Java enumid?

Java keeles viitab enum spetsiaalsele [andmetüübile](https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/java-andmetueuebid/), mida saab kasutada tavapärastes klassides, kuid mis erineb tavapärastest klassidest ühe olulise aspekti poolest. Enum on muutujatüüp, millel on **spetsiaalselt määratletud, fikseeritud ja seega piiratud väärtusvalikud**. Java enumid on konstandid, mis takistavad soovimatute väärtuste kasutamist koodis. See tagab koodi loogilise struktuuri ja suurendab loetavust. Termin „enum” pärineb sõnast „enumeration” (loendamine).

## Mis on Java enumite süntaks?

Java enumite süntaks on alati ühesugune ja näeb välja järgmine:

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

Kui soovite määratleda enum-klassi, alustage märksõnaga `enum`, mida kasutate `class` või `interface` asemel. Seejärel nimetage spetsiaalne klass ja paigutage soovitud lubatud konstandid lokkisulgudesse. Konstandid **kirjutatakse alati suurtähtedega** ja eraldatakse üksteisest komadega.

## Kuidas luua klass enumiga

Üks viis Java enumite kasutamiseks on luua nimekiri, mis sisaldab aasta kuud. Selline nimekiri sisaldaks ainult kahtteist võimalikku väärtust. Kui hiljem on vaja tüüpi `Months` muutujat, on lubatud kasutada ainult määratletud konstante. Siin on näide koodi kirjutamisest:

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

Tüübi `Months` muutuja deklareerimiseks määrake sellele väärtus ja kasutage Java-käsku `System.out.println` selle kuvamiseks. Koodis näeb see välja järgmine:

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

## Kuidas kasutada Java enumeid klassis

Java enumeid saab kasutada ka klassi sees. Eespool toodud näite puhul näeks see välja järgmine:

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

## Kuidas kasutada `values()` meetodit kõigi konstantide päringuks

Kui soovite kuvada kõik saadaval olevad väärtused, võite kasutada meetodit `values()`. See väljastab konstandid massiivi kujul. Siin on näide, kuidas seda teha eespool toodud näite puhul:

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

## Kuidas kasutada Java enums koos `switch()`

Java enumeid saab kombineerida ka teiste meetoditega. Siin on näide, kuidas see välja näeb, kui seda kombineeritakse `switch()`-ga:

```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/et-ee/digitalguide/veebisaidid/veebiarendus/java-loendid/](https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/java-loendid/) for AI/LLM consumption.