Java enum & enum klasse (med eksempler)

I denne vejledning lærer vi om enums i Java. Vi lærer at oprette og bruge enums og enum-klasser ved hjælp af eksempler.

I Java er en enum (forkortelse for enumeration) en type, der har et fast sæt konstante værdier. Vi bruger enumnøgleordet til at erklære enums. For eksempel,

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE )

Her har vi oprettet et enum med navnet Size. Den indeholder faste værdier SMÅ, MEDIUM, STOR og EKSTRA.

Disse værdier inde i selerne kaldes enum konstanter (værdier).

Bemærk: Enumkonstanterne er normalt repræsenteret med store bogstaver.

Eksempel 1: Java Enum

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE ) class Main ( public static void main(String() args) ( System.out.println(Size.SMALL); System.out.println(Size.MEDIUM); ) )

Produktion

 SMÅ MEDIUM

Som vi kan se fra ovenstående eksempel, bruger vi enumnavnet til at få adgang til de konstante værdier.

Vi kan også oprette variabler af enumtyper. For eksempel,

 Size pizzaSize;

Her er pizzaSize en variabel af størrelsestypen. Det kan kun tildeles med 4 værdier.

 pizzaSize = Size.SMALL; pizzaSize = Size.MEDIUM; pizzaSize = Size.LARGE; pizzaSize = Size.EXTRALARGE;

Eksempel 2: Java Enum med switch-erklæringen

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE ) class Test ( Size pizzaSize; public Test(Size pizzaSize) ( this.pizzaSize = pizzaSize; ) public void orderPizza() ( switch(pizzaSize) ( case SMALL: System.out.println("I ordered a small size pizza."); break; case MEDIUM: System.out.println("I ordered a medium size pizza."); break; default: System.out.println("I don't know which one to order."); break; ) ) ) class Main ( public static void main(String() args) ( Test t1 = new Test(Size.MEDIUM); t1.orderPizza(); ) )

Produktion

 Jeg bestilte en mellemstor pizza.

I ovenstående program har vi oprettet en enum-type Størrelse. Vi erklærede derefter en variabel pizzaSize af størrelsestypen.

Her kan variablen pizzaSize kun tildeles med 4 værdier (SMALL, MEDIUM, LARGE, EXTRALARGE).

Bemærk erklæringen,

 Test t1 = new Test(Size.MEDIUM);

Det kalder Test()konstruktøren inde i testklassen. Nu tildeles den variable pizzaSize med MEDIUM-konstanten.

Baseret på værdien udføres en af ​​tilfældene i switch case-erklæringen.

Enum klasse i Java

I Java betragtes enumtyper som en særlig type klasse. Det blev introduceret med frigivelsen af ​​Java 5.

En enum-klasse kan omfatte metoder og felter ligesom almindelige klasser.

 enum Size ( constant1, constant2,… , constantN; // methods and fields )

Når vi opretter en enum-klasse, opretter kompilatoren forekomster (objekter) af hver enum-konstante. Også hele enumkonstant er altid public static finalsom standard.

Eksempel 3: Java Enum-klasse

 enum Size( SMALL, MEDIUM, LARGE, EXTRALARGE; public String getSize() ( // this will refer to the object SMALL switch(this) ( case SMALL: return "small"; case MEDIUM: return "medium"; case LARGE: return "large"; case EXTRALARGE: return "extra large"; default: return null; ) ) public static void main(String() args) ( // call getSize() // using the object SMALL System.out.println("The size of the pizza is " + Size.SMALL.getSize()); ) )

Produktion

 Størrelsen på pizzaen er lille

I ovenstående eksempel har vi oprettet en enum klasse størrelse. Den har fire konstanter SMÅ, MEDIUM, STOR og EKSTRA.

Da størrelse er en enum-klasse, opretter kompilatoren automatisk forekomster for hver enum-konstante.

Her inde i main()metoden har vi brugt forekomsten SMALL til at kalde getSize()metoden.

Bemærk : Som almindelige klasser kan en enum-klasse også omfatte konstruktører. For at lære mere om det, besøg Java enum constructor.

Metoder til Java Enum-klasse

Der er nogle foruddefinerede metoder i enumklasser, der er let tilgængelige til brug.

1. Java Enum ordinal ()

Den ordinal()metode returnerer positionen af et enum konstant. For eksempel,

 ordinal(SMALL) // returns 0

2. Enum CompareTo ()

Den compareTo()metode sammenligner enum konstanter baseret på deres ordenstal værdi. For eksempel,

 Size.SMALL.compareTo(Size.MEDIUM) // returns ordinal(SMALL) - ordinal(MEDIUM)

3. Enum toString ()

Den toString()metode returnerer strengen repræsentation af enum konstanter. For eksempel,

 SMALL.toString() // returns "SMALL"

4. Enumnavn ()

Den name()metode returnerer den definerede navnet på en enum konstant i snor formular. Den returnerede værdi fra name()metoden er final. For eksempel,

 name(SMALL) // returns "SMALL"

5. Java Enum valueOf ()

Den valueOf()metode tager en streng og returnerer en enum konstant har den samme snor navn. For eksempel,

 Size.valueOf("SMALL") // returns constant SMALL.

6. Enumværdier ()

Den values()metode returnerer et array af enum type, der indeholder alle de enum konstanter. For eksempel,

 Size() enumArray = Size.value();

Hvorfor Java Enums?

I Java blev enum introduceret for at erstatte brugen af ​​int-konstanter .

Antag, at vi har brugt en samling intkonstanter.

 class Size ( public final static int SMALL = 1; public final static int MEDIUM = 2; public final static int LARGE = 3; public final static int EXTRALARGE = 4; )

Her opstår problemet, hvis vi udskriver konstanterne. Det er fordi kun nummeret er udskrevet, hvilket måske ikke er nyttigt.

Så i stedet for at bruge int-konstanter kan vi simpelthen bruge enums. For eksempel,

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE )

Dette gør vores kode mere intuitiv.

Enum giver også kompileringstidssikkerhed .

Hvis vi erklærer en variabel af størrelsestypen. For eksempel,

 Size size;

Her er det garanteret, at variablen holder en af ​​de fire værdier. Nu, hvis vi prøver at videregive andre værdier end disse fire værdier, genererer compileren en fejl.

Interessante artikler...