logo

enum Java valodā

Java valodā, Uzskaitījumi vai Java Enum kalpo nosauktu konstantu grupas attēlošanai programmēšanas valodā. Java Enums tiek izmantots, ja mēs zinām visas iespējamās vērtības kompilēšanas laikā, piemēram, izvēles izvēlnē, noapaļošanas režīmi, komandrindas karodziņi utt. Konstantu kopai enum tipa konstantēm nav jāpaliek nemainīgai visu laiku.

Kas ir uzskaitījums vai enum Java valodā?

Java uzskaitījums ir klases tips. Lai gan mums nav jāveido enum, izmantojot jauns, tai ir tādas pašas iespējas kā citām klasēm. Šis fakts padara Java uzskaitīšanu par ļoti spēcīgu rīku. Tāpat kā klasēm, varat tām piešķirt konstruktorus, pievienot gadījumu mainīgos un metodes un pat ieviest saskarnes.

Enum piemērs:

Spēļu kāršu komplektā esošie 4 masti var būt 4 skaitītāji ar nosaukumu Klubs, Dimants, Sirds un Pīķa, kas pieder uzskaitītajam tipam ar nosaukumu Uzvalks. Citi piemēri ir dabiski uzskaitīti veidi (piemēram, planētas, nedēļas dienas, krāsas, virzieni utt.).



Viena lieta, kas jāpatur prātā, ir tāda, ka atšķirībā no klasēm uzskaitījumi nemanto citas klases un tos nevar paplašināt (t.i., kļūt par virsklasi). Tam varam pievienot arī mainīgos, metodes un konstruktorus. Enum galvenais mērķis ir definēt mūsu pašu datu tipus (uzskaitītos datu tipus).

Enum deklarācija Java valodā

Enum deklarāciju var veikt ārpus klases vai klases, bet ne metodes ietvaros.

1. Deklarācija ārpus nodarbības

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

>

>

Izvade

RED>

2. Deklarācija klasē

Java


skriptu palaišana Linux sistēmā



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

>

>

Izvade

RED>
  • Pirmajā rindā enum ir jābūt konstantu sarakstam un pēc tam citām lietām, piemēram, metodēm, mainīgajiem un konstruktoriem.
  • Saskaņā ar Java nosaukumu piešķiršanas konvencijas , ieteicams nosaukt konstanti ar visiem lielajiem burtiem

Enum īpašības Java valodā

Ir noteiktas īpašības, kurām seko Enum, kā minēts tālāk:

  • Katrs enums ir iekšēji ieviests, izmantojot klasi.
  • Katra enum konstante apzīmē an objektu enum tipa.
  • Enum veidu var nodot kā argumentu slēdzis paziņojumi.
  • Katra enum konstante vienmēr ir netieša publisks statisks fināls . Tā kā tā ir statisks , mēs tam varam piekļūt, izmantojot sarakstu Nosaukums. Tā kā tā ir galīgais , mēs nevaram izveidot bērnu enums.
  • Mēs varam deklarēt galvenā() metode enum iekšpusē. Tādējādi mēs varam izsaukt enum tieši no komandu uzvednes.

Tālāk ir norādīta iepriekš minēto īpašību ieviešana:

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

>

>

java lietošanas datums
Izvade

Mondays are bad.>

Java Enum programmas

1. Galvenā funkcija Enum iekšpusē

Mēs varam deklarēt galveno funkciju enum iekšpusē, jo mēs varam izsaukt enum tieši no komandu uzvednes.

Tālāk ir norādīta iepriekš minētā īpašuma ieviešana:

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

>

>

Izvade

RED>

2. Cilpa caur Enum

Mēs varam atkārtot Enum, izmantojot vērtības ( ) un cilpu. Funkcija value() atgriež Enum vērtību masīvu kā konstantes, ar kurām mēs varam atkārtot vērtības.

Tālāk ir parādīta cilpas ieviešana caur Enum:

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

>

>

Izvade

RED GREEN BLUE>

3. Enum slēdža paziņojumā

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

>

>

multipleksors
Izvade

Other color observed>

Enum un Mantojums

  • Visi enumi netieši paplašinās java.lang.Enum klase . Kā klase var tikai paplašināties viens vecāks Java, enum nevar paplašināt neko citu.
  • toString() metode ir ignorēts java.lang.Enum klase , kas atgriež enum konstantes nosaukumu.
  • enum var ieviest daudzas saskarnes.

Enum un konstruktors

  • Enum var saturēt konstruktoru, un tas tiek izpildīts atsevišķi katrai enum konstantei enum klases ielādes laikā.
  • Mēs nevaram izveidot enum objektus tieši, un tāpēc mēs nevaram tieši izsaukt enum konstruktoru.

Enum un metodes

Enum var saturēt abus betons metodes un abstrakts metodes. Ja enum klasei ir abstrakta metode, tad katrai enum klases instancei tā ir jārealizē.

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

>

>

Izvade

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

Bieži uzdotie jautājumi par Enum Java

Q1. Vai varam izveidot Enum gadījumu, izmantojot jauno atslēgvārdu?

Gadi:

Nē, mēs nevaram izveidot atslēgvārda Enum gadījumu, jo tajā ir tikai privāti konstruktori.

Q2. Vai Enum var izmantot abstraktu metodi?

Gadi:

Jā, mums Enum ir abstrakta metode.

Q3. Kāds ir vērtības() metodes mērķis sarakstā?

Gadi:

Programmā Java vērtību( ) metodi var izmantot, lai atgrieztu visas vērtības, kas atrodas sarakstā.

Q4. Kāds ir valueOf() metodes mērķis sarakstā?

Gadi:

Metode valueOf() atgriež norādītās virknes vērtības enum konstanti, ja tāda pastāv.

Q5. Kāds ir kārtas() metodes mērķis enum?

Gadi:

Izmantojot ordinal() metodi, var atrast katru enum konstantes indeksu, tāpat kā masīva indeksu.

Q6. Uzrakstiet programmu Java valodā, lai aprakstītu vērtību(), valueOf() un ordinal() metožu izmantošanu enum.

Gadi:

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

>

salīdziniet java virkni

>

Izvade

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

Nākamais raksts par enumu: Enum ar pielāgotu vērtību Java