„Java enum & enum“ klasė (su pavyzdžiais)

Šioje pamokoje sužinosime apie „Java“ sąrašus. Išmoksime kurti ir naudoti „enums“ ir „enum“ klases naudodamiesi pavyzdžiais.

„Java“ sistemoje „enum“ (sutrumpintas surašymas) yra tipas, turintis fiksuotą pastovių verčių rinkinį. Mes naudojame enumraktinį žodį deklaruoti sąskaitas. Pavyzdžiui,

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE )

Čia mes sukūrėme sąrašą, pavadintą Dydis. Jame yra fiksuotos mažos, vidutinės, didelės ir labai didelės vertės.

Šios reikšmės breketų viduje vadinamos enum konstantomis (reikšmėmis).

Pastaba: „Enum“ konstantos paprastai vaizduojamos didžiosiomis raidėmis.

1 pavyzdys: „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); ) )

Rezultatas

 MAŽAS VIDUTINIS

Kaip matome iš aukščiau pateikto pavyzdžio, norėdami pasiekti pastovias vertes, mes naudojame pavadinimą „enum“.

Taip pat galime sukurti enum tipų kintamuosius. Pavyzdžiui,

 Size pizzaSize;

Čia „pizzaSize“ yra dydžio tipo kintamasis. Ją galima priskirti tik su 4 reikšmėmis.

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

2 pavyzdys: „Java Enum“ su jungiklio sakiniu

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

Rezultatas

 Užsisakiau vidutinio dydžio picą.

Pirmiau pateiktoje programoje mes sukūrėme enum tipo dydį. Tada mes paskelbėme kintamą dydžio dydžio picą.

Čia kintamąjį „pizzaSize“ galima priskirti tik 4 reikšmėms (MAŽAS, VIDUTINIS, DIDELIS, EKSTALARUS).

Atkreipkite dėmesį į pareiškimą,

 Test t1 = new Test(Size.MEDIUM);

Jis pakvies Test()konstruktorių į „Test“ klasę. Dabar kintamasis „pizzaSize“ priskiriamas vidutinei konstantai.

Remiantis verte, vykdomas vienas iš jungiklio atvejo pareiškimo atvejų.

„Enum“ klasė „Java“

„Java“ sistemoje „enum“ tipai laikomi specialiu klasės tipu. Jis buvo pristatytas išleidus „Java 5“.

„Enum“ klasėje gali būti metodai ir laukai, kaip ir įprastose klasėse.

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

Kai sukursime enum klasę, kompiliatorius sukurs kiekvienos enum konstantos egzempliorius (objektus). Be to, public static finalpagal nutylėjimą visada yra visa enum konstanta .

3 pavyzdys: „Java Enum“ klasė

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

Rezultatas

 Picos dydis nedidelis

Ankstesniame pavyzdyje mes sukūrėme enum klasę Dydis. Jame yra keturios mažos, vidutinės, didelės ir labai didelės konstantos.

Kadangi dydis yra enum klasė, kompiliatorius automatiškai sukuria egzempliorius kiekvienai enum konstantai.

main()Metodo viduje mes naudojome pavyzdį SMALL, kad iškviestume getSize()metodą.

Pastaba : kaip ir įprastose klasėse, „enum“ klasėje taip pat gali būti konstruktorių. Norėdami daugiau sužinoti apie tai, apsilankykite „Java enum“ konstruktoriuje.

„Java Enum“ klasės metodai

„Enum“ klasėse yra keletas iš anksto nustatytų metodų, kuriuos galima lengvai naudoti.

1. „Java Enum“ eilinis ženklas ()

ordinal()Metodas grąžina An ENUM konstanta poziciją. Pavyzdžiui,

 ordinal(SMALL) // returns 0

2. „Enum“ palyginkite ()

compareTo()Metodas lygina ENUM konstantos pagal jų ran vertės. Pavyzdžiui,

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

3. „Enum toString“ ()

toString()Metodas grąžina eilutę atstovavimą ENUM konstantų. Pavyzdžiui,

 SMALL.toString() // returns "SMALL"

4. Užrašo vardas ()

name()Metodas grąžina tam tikrą vardą Kurių ENUM konstanta styginių forma. Grąžinta name()metodo vertė yra final. Pavyzdžiui,

 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;

Čia garantuojama, kad kintamasis turės vieną iš keturių reikšmių. Dabar, jei bandysime perduoti kitas nei keturias reikšmes, kompiliatorius sukurs klaidą.

Įdomios straipsniai...