Java enum & enum klase (ar piemēriem)

Šajā apmācībā mēs uzzināsim par Java enums. Mēs iemācīsimies izveidot un lietot enumus un enum klases ar piemēru palīdzību.

Java valodā enum (saīsinājums no uzskaitījuma) ir tips, kuram ir fiksēts nemainīgu vērtību kopums. Mēs izmantojam enumatslēgvārdu, lai paziņotu par summām. Piemēram,

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE )

Šeit mēs esam izveidojuši enumu ar nosaukumu Izmērs. Tajā ir fiksētas vērtības SMALL, MEDIUM, LARGE un EXTRALARGE.

Šīs vērtības iekavās tiek sauktas par enuma konstantēm (vērtībām).

Piezīme: Enuma konstantes parasti attēlo ar lielajiem burtiem.

1. piemērs: 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); ) )

Rezultāts

 MAZS VIDĒJS

Kā redzams no iepriekš minētā piemēra, mēs izmantojam enum nosaukumu, lai piekļūtu nemainīgajām vērtībām.

Tāpat mēs varam izveidot enum tipu mainīgos. Piemēram,

 Size pizzaSize;

Šeit pizzaSize ir lieluma veida mainīgais. To var piešķirt tikai ar 4 vērtībām.

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

2. piemērs: Java Enum ar slēdzi

 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(); ) )

Rezultāts

 Es pasūtīju vidēja izmēra picu.

Iepriekš minētajā programmā mēs esam izveidojuši enum tipa Size. Pēc tam mēs paziņojām par mainīgu picas izmēru.

Šeit mainīgo pizzaSize var piešķirt tikai ar 4 vērtībām (SMALL, MEDIUM, LARGE, EXTRALARGE).

Ievērojiet paziņojumu,

 Test t1 = new Test(Size.MEDIUM);

Tas izsauks Test()konstruktoru testa klasē. Tagad mainīgais pizzaSize tiek piešķirts ar MEDIUM konstanti.

Pamatojoties uz vērtību, tiek izpildīts viens no slēdža gadījuma paziņojuma gadījumiem.

Enum klase Java valodā

Java valodā enum tipi tiek uzskatīti par īpašiem klases tipiem. Tas tika ieviests, izlaižot Java 5.

Enum klase var ietvert metodes un laukus tāpat kā parastās nodarbības.

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

Kad mēs izveidosim enum klasi, kompilators izveidos katras enum konstantes gadījumus (objektus). Arī public static finalpēc noklusējuma vienmēr ir visa uzskaites konstante .

3. piemērs: Java Enum klase

 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()); ) )

Rezultāts

 Picas izmērs ir mazs

Iepriekš minētajā piemērā mēs esam izveidojuši enum klases Size. Tam ir četras konstantes MAZA, VIDĒJA, LIELA un PAPILDU.

Tā kā lielums ir uzskaites klase, kompilators automātiski izveido gadījumus katrai uzskaites konstantei.

main()Metodes iekšienē mēs esam izmantojuši SMALL instanci, lai izsauktu getSize()metodi.

Piezīme . Tāpat kā parastajās klasēs, arī enum klasē var būt konstruktori. Lai uzzinātu vairāk par to, apmeklējiet Java enum konstruktoru.

Java Enum klases metodes

Enum klasēs ir dažas iepriekš definētas metodes, kuras ir viegli pieejamas lietošanai.

1. Java Enum kārtas numurs ()

ordinal()Metode atgriež pozīciju uz ENUM konstanti. Piemēram,

 ordinal(SMALL) // returns 0

2. Enum salīdzināt ()

compareTo()Metode salīdzina enum konstantes, pamatojoties uz to kārtas vērtību. Piemēram,

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

3. Enum toString ()

toString()Metode atgriež virkni pārstāvniecību enum konstantes. Piemēram,

 SMALL.toString() // returns "SMALL"

4. Enum vārds ()

name()Metode atgriež noteikto nosaukumu, enum konstante virknes veidā. Metodes atgrieztā vērtība name()ir final. Piemēram,

 name(SMALL) // returns "SMALL"

5. Java Enum valueOf ()

The valueOf() method takes a string and returns an enum constant having the same string name. For example,

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

6. Enum values()

The values() method returns an array of enum type containing all the enum constants. For example,

 Size() enumArray = Size.value();

Why Java Enums?

In Java, enum was introduced to replace the use of int constants.

Suppose we have used a collection of int constants.

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

Here, the problem arises if we print the constants. It is because only the number is printed which might not be helpful.

So, instead of using int constants, we can simply use enums. For example,

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE )

This makes our code more intuitive.

Also, enum provides compile-time type safety.

If we declare a variable of the Size type. For example,

 Size size;

Šeit tiek garantēts, ka mainīgajam būs viena no četrām vērtībām. Tagad, ja mēs mēģināsim nodot citas vērtības, nevis šīs četras vērtības, kompilators radīs kļūdu.

Interesanti raksti...