logo

enum Javassa

Javalla, Luettelot tai Java Enum palvelevat nimettyjen vakioiden ryhmän esittämistä ohjelmointikielessä. Java Enumeja käytetään, kun tiedämme kaikki mahdolliset arvot käännöshetkellä, kuten valikon valinnat, pyöristystilat, komentorivin liput jne. Enum-tyypin vakiojoukon ei tarvitse pysyä kiinteänä koko ajan.

Mikä on Enumeration tai Enum Javassa?

Java-luettelo on luokkatyyppi. Vaikka meidän ei tarvitse instantoida enumia käyttämällä Uusi, sillä on samat ominaisuudet kuin muilla luokilla. Tämä tosiasia tekee Java-luettelosta erittäin tehokkaan työkalun. Aivan kuten luokille, voit antaa niille rakentajia, lisätä esiintymän muuttujia ja menetelmiä ja jopa toteuttaa rajapintoja.



Enum esimerkki:

Pelikorttipakan 4 maata voivat olla 4 listaajaa nimeltä Club, Diamond, Heart ja Spade, jotka kuuluvat lueteltuun tyyppiin nimeltä Puku. Muita esimerkkejä ovat luonnolliset luetellut tyypit (kuten planeetat, viikonpäivät, värit, suunnat jne.).

Yksi asia on pidettävä mielessä, että toisin kuin luokat, luettelot eivät peri muita luokkia eivätkä niitä voi laajentaa (eli niistä tulee superluokkia). Voimme myös lisätä siihen muuttujia, menetelmiä ja konstruktoreita. Enumin päätavoite on määrittää omat tietotyypit (luetteloidut tietotyypit).

Enum-ilmoitus Javassa

Enum-ilmoitus voidaan tehdä luokan ulkopuolella tai luokan sisällä, mutta ei menetelmän sisällä.



1. Ilmoitus luokan ulkopuolella

Java






// A simple enum example where enum is declared> // outside any class (Note enum keyword instead of> // class keyword)> enum> Color {> >RED,> >GREEN,> >BLUE;> }> public> class> Test {> >// Driver method> >public> static> void> main(String[] args)> >{> >Color c1 = Color.RED;> >System.out.println(c1);> >}> }>

>

>

Lähtö

RED>

2. Ilmoitus luokan sisällä

Java


teollisuus ja tehdas



// enum declaration inside a class.> public> class> Test {> >enum> Color {> >RED,> >GREEN,> >BLUE;> >}> >// Driver method> >public> static> void> main(String[] args)> >{> >Color c1 = Color.RED;> >System.out.println(c1);> >}> }>

>

>

Lähtö

RED>
  • Enumin ensimmäisen rivin tulee olla luettelo vakioista ja sitten muista asioista, kuten menetelmistä, muuttujista ja konstruktoreista.
  • Mukaan Java nimeämiskäytännöt , on suositeltavaa nimetä vakio isoilla kirjaimilla

Enumin ominaisuudet Javassa

On tiettyjä ominaisuuksia, joita seuraa Enum, kuten alla mainitaan:

  • Jokainen enum on toteutettu sisäisesti käyttämällä Classia.
  • Jokainen enumvakio edustaa an esine tyyppiä enum.
  • Enum-tyyppi voidaan välittää argumenttina vaihtaa lausunnot.
  • Jokainen enumvakio on aina implisiittinen julkinen staattinen finaali . Koska se on staattinen , voimme käyttää sitä käyttämällä luetteloa Nimi. Koska se on lopullinen , emme voi luoda lapsienumuksia.
  • Voimme ilmoittaa main() -menetelmä enumin sisällä. Siksi voimme kutsua enumia suoraan komentokehotteesta.

Alla on yllä olevien ominaisuuksien toteutus:

Java




// A Java program to demonstrate working on enum> // in switch case (Filename Test. Java)> import> java.util.Scanner;> // An Enum class> enum> Day {> >SUNDAY,> >MONDAY,> >TUESDAY,> >WEDNESDAY,> >THURSDAY,> >FRIDAY,> >SATURDAY;> }> // Driver class that contains an object of 'day' and> // main().> public> class> Test {> >Day day;> >// Constructor> >public> Test(Day day) {>this>.day = day; }> >// Prints a line about Day using switch> >public> void> dayIsLike()> >{> >switch> (day) {> >case> MONDAY:> >System.out.println(>'Mondays are bad.'>);> >break>;> >case> FRIDAY:> >System.out.println(>'Fridays are better.'>);> >break>;> >case> SATURDAY:> >case> SUNDAY:> >System.out.println(>'Weekends are best.'>);> >break>;> >default>:> >System.out.println(>'Midweek days are so-so.'>);> >break>;> >}> >}> >// Driver method> >public> static> void> main(String[] args)> >{> >String str =>'MONDAY'>;> >Test t1 =>new> Test(Day.valueOf(str));> >t1.dayIsLike();> >}> }>

>

>

satunnaisluku javassa
Lähtö

Mondays are bad.>

Java Enum -ohjelmat

1. Päätoiminto Enumin sisällä

Voimme ilmoittaa pääfunktion enumin sisällä, koska voimme kutsua enumia suoraan komentokehotteesta.

Alla on yllä olevan ominaisuuden toteutus:

Java




// A Java program to demonstrate that we can have> // main() inside enum class.> enum> Color {> >RED,> >GREEN,> >BLUE;> >// Driver method> >public> static> void> main(String[] args)> >{> >Color c1 = Color.RED;> >System.out.println(c1);> >}> }>

>

>

Lähtö

RED>

2. Kierrä Enum läpi

Voimme iteroida Enumin yli käyttämällä arvoja ( ) ja silmukkaa. Values()-funktio palauttaa joukon Enum-arvoja vakioina, joiden avulla voimme iteroida arvoja.

Alla on silmukan toteutus Enumin kautta:

Java




// Java Program to Print all the values> // inside the enum using for loop> import> java.io.*;> // Enum Declared> enum> Color {> >RED,> >GREEN,> >BLUE;> }> // Driver Class> class> GFG {> >// Main Function> >public> static> void> main(String[] args)> >{> >// Iterating over all the values in> >// enum using for loop> >for> (Color var_1 : Color.values()) {> >System.out.println(var_1);> >}> >}> }>

merkkijonon muuntaminen päivämääräksi
>

>

Lähtö

RED GREEN BLUE>

3. Enum Switch-lausunnossa

Java




// Java Program to implement> // Enum in a Switch Statement> import> java.io.*;> // Driver Class> class> GFG {> >// Enum Declared> >enum> Color {> >RED,> >GREEN,> >BLUE,> >Yellow;> >}> >// Main Function> >public> static> void> main(String[] args)> >{> >Color var_1=Color.Yellow;> > >// Switch case with Enum> >switch>(var_1){> >case> RED:> >System.out.println(>'Red color observed'>);> >break>;> >case> GREEN:> >System.out.println(>'Green color observed'>);> >break>;> >case> BLUE:> >System.out.println(>'Blue color observed'>);> >default>:> >System.out.println(>'Other color observed'>);> >}> >}> }>

>

>

Lähtö

Other color observed>

Enum ja perintö

  • Kaikki enumit implisiittisesti ulottuvat java.lang.Enum-luokka . Koska luokka voi vain laajentaa yksi Vanhempana Javassa, enum ei voi laajentaa mitään muuta.
  • toString()-metodi ohitetaan sisään java.lang.Enum-luokka , joka palauttaa enum-vakion nimen.
  • enum voi toteuttaa monia käyttöliittymiä.

Enum ja rakentaja

  • Enum voi sisältää konstruktorin ja se suoritetaan erikseen jokaiselle enum-vakiolle enum-luokan lataushetkellä.
  • Emme voi luoda enum-objekteja eksplisiittisesti, joten emme voi kutsua enum-konstruktoria suoraan.

Enum ja menetelmät

Enum voi sisältää molemmat betoni menetelmät ja abstrakti menetelmiä. Jos enum-luokassa on abstrakti menetelmä, jokaisen enum-luokan esiintymän on toteutettava se.

Java




// Java program to demonstrate that enums can have> // constructor and concrete methods.> // An enum (Note enum keyword inplace of class keyword)> enum> Color {> >RED,> >GREEN,> >BLUE;> >// enum constructor called separately for each> >// constant> >private> Color()> >{> >System.out.println(>'Constructor called for : '> >+>this>.toString());> >}> >public> void> colorInfo()> >{> >System.out.println(>'Universal Color'>);> >}> }> public> class> Test {> >// Driver method> >public> static> void> main(String[] args)> >{> >Color c1 = Color.RED;> >System.out.println(c1);> >c1.colorInfo();> >}> }>

>

>

Lähtö

Constructor called for : RED Constructor called for : GREEN Constructor called for : BLUE RED Universal Color>

Usein kysytyt kysymykset Enumista Javassa

Q1. Voimmeko luoda Enum-esiintymän uudella avainsanalla?

Vuodet:

Ei, emme voi luoda Enum-avainsanan esiintymää, koska se sisältää vain yksityisiä rakentajia.

Q2. Voiko Enumissa olla abstrakti menetelmä?

Vuodet:

Kyllä, meillä on abstrakti menetelmä Enumissa.

Q3. Mikä on value()-menetelmän tarkoitus enumissa?

Vuodet:

Javassa Values()-menetelmää voidaan käyttää palauttamaan kaikki enum-arvot.

Q4. Mikä on valueOf()-menetelmän tarkoitus enumissa?

Vuodet:

Metodi valueOf() palauttaa määritetyn merkkijonoarvon enum-vakion, jos sellainen on olemassa.

Q5. Mikä on ordinal()-menetelmän tarkoitus enumissa?

Vuodet:

Ordinal()-menetelmää käyttämällä jokainen enum-vakioindeksi löytyy, aivan kuten taulukkoindeksi.

Q6. Kirjoita Java-kielellä ohjelma, joka kuvaa value(), valueOf()- ja ordinal()-menetelmien käyttöä enumissa.

Vuodet:

Java




// Java program to demonstrate working of values(),> // ordinal() and valueOf()> enum> Color {> >RED,> >GREEN,> >BLUE;> }> public> class> Test {> >public> static> void> main(String[] args)> >{> >// Calling values()> >Color arr[] = Color.values();> >// enum with loop> >for> (Color col : arr) {> >// Calling ordinal() to find index> >// of color.> >System.out.println(col +>' at index '> >+ col.ordinal());> >}> >// Using valueOf(). Returns an object of> >// Color with given constant.> >// Uncommenting second line causes exception> >// IllegalArgumentException> >System.out.println(Color.valueOf(>'RED'>));> >// System.out.println(Color.valueOf('WHITE'));> >}> }>

>

merkkijonon alimerkkijono

>

Lähtö

RED at index 0 GREEN at index 1 BLUE at index 2 RED>

Seuraava artikkeli enumista: Enum mukautetulla arvolla Javassa