Razred Java enum & enum (z primeri)

V tej vadnici bomo spoznali enume v Javi. S pomočjo primerov se bomo naučili ustvarjati in uporabljati enume in enum tečaje.

V Javi je enum (kratica za enumeration) vrsta, ki ima fiksni nabor konstantnih vrednosti. Mi uporabljamo enumbesedo, naj ugotovi enums. Na primer

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE )

Tu smo ustvarili enum z imenom Velikost. Vsebuje fiksne vrednosti SMALL, SREDNJA, LARGE in EXTRALARGE.

Te vrednosti v oklepajih se imenujejo enum konstante (vrednosti).

Opomba: Konstante naštevanja so običajno predstavljene z velikimi črkami.

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

Izhod

 MALO SREDNJE

Kot lahko vidimo iz zgornjega primera, za dostop do vrednosti konstant uporabljamo ime enum.

Prav tako lahko ustvarimo spremenljivke vrst enum. Na primer

 Size pizzaSize;

Tu je pizzaSize spremenljivka tipa Size. Dodeliti ga je mogoče samo s 4 vrednostmi.

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

Primer 2: Java Enum s stavkom switch

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

Izhod

 Naročil sem pico srednje velikosti.

V zgornjem programu smo ustvarili enum tip Velikost. Nato smo razglasili spremenljivo velikost pizzaSize tipa Size.

Tu lahko spremenljivko pizzaSize dodelite samo s 4 vrednostmi (SMALL, SREDNJA, LARGE, EXTRALARGE).

Upoštevajte izjavo,

 Test t1 = new Test(Size.MEDIUM);

Poklical bo Test()konstruktor znotraj razreda Test. Zdaj je spremenljivki pizzaSize dodeljena srednja konstanta.

Na podlagi vrednosti se izvede eden od primerov stavka case switch.

Enum razred v Javi

V Javi se štejejo vrste enum kot posebna vrsta razreda. Predstavljen je bil z izdajo Java 5.

Razred enum lahko vključuje metode in polja, tako kot običajni razredi.

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

Ko ustvarimo enum razred, bo prevajalnik ustvaril primerke (predmete) vsake konstante enum. Tudi vsa enum konstanta je vedno public static finalprivzeto.

Primer 3: Razred Java Enum

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

Izhod

 Velikost pice je majhna

V zgornjem primeru smo ustvarili enum razred Velikost. Ima štiri konstante MALO, SREDNJO, VELIKO in VELIKO.

Ker je Velikost razred enum, prevajalnik samodejno ustvari primerke za vsako konstanto enum.

Tu znotraj main()metode smo za klic getSize()metode uporabili primerek SMALL .

Opomba : Tako kot običajni razredi lahko tudi enumski razred vključuje konstruktorje. Če želite izvedeti več o tem, obiščite Java enum constructor.

Metode razreda Java Enum

V razredih naštevanja je nekaj vnaprej določenih metod, ki so na voljo za uporabo.

1. Java Enum zaporedni ()

ordinal()Metoda vrne položaj konstanto oštevilčevanja. Na primer

 ordinal(SMALL) // returns 0

2. Enum compareTo ()

compareTo()Metoda primerja ENUM konstante glede na njihovo zaporedna vrednost. Na primer

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

3. Enum toString ()

toString()Metoda vrne zastopanost niz o ENUM konstant. Na primer

 SMALL.toString() // returns "SMALL"

4. Ime števila ()

name()Metoda vrne opredeljeno ime za oštevilčevanja konstanto v obliki niza. Vrnjena vrednost name()metode je final. Na primer

 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;

Tu je zagotovljeno, da bo spremenljivka imela eno od štirih vrednosti. Zdaj, če poskusimo prenesti vrednosti, ki niso te štiri vrednosti, bo prevajalnik ustvaril napako.

Zanimive Članki...