logo

enum i Java

I Java, Enumerations eller Java Enum tjene formålet med å representere en gruppe navngitte konstanter i et programmeringsspråk. Java Enums brukes når vi kjenner alle mulige verdier på kompileringstidspunktet, for eksempel valg på en meny, avrundingsmoduser, kommandolinjeflagg osv. Settet med konstanter i en enum-type trenger ikke være fast for alltid.

Hva er Enumeration eller Enum i Java?

En Java-oppregning er en klassetype. Selv om vi ikke trenger å instansiere en enum ved å bruke ny, den har de samme egenskapene som andre klasser. Dette faktum gjør Java-oppregning til et veldig kraftig verktøy. Akkurat som klasser kan du gi dem konstruktører, legge til instansvariabler og metoder, og til og med implementere grensesnitt.



Enum Eksempel:

De 4 fargene i en kortstokk kan være 4 tellere som heter Klubb, Ruter, Hjerte og Spade, som tilhører en oppregnet type som heter Suit. Andre eksempler inkluderer naturlige oppregnede typer (som planetene, ukedager, farger, veibeskrivelser osv.).

En ting å huske på er at, i motsetning til klasser, arver oppregninger verken andre klasser eller kan utvides (dvs. bli superklasse). Vi kan også legge til variabler, metoder og konstruktører til den. Hovedmålet med en enum er å definere våre egne datatyper (Enumerated Data Types).

Erklæring om enum i Java

Enum-erklæring kan gjøres utenfor en klasse eller inne i en klasse, men ikke innenfor en metode.



1. Erklæring utenfor klassen

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

>

>

Produksjon

RED>

2. Erklæring i en klasse

Java


shilpa shetty



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

>

>

Produksjon

RED>
  • Den første linjen inne i enumet skal være en liste over konstanter og deretter andre ting som metoder, variabler og konstruktører.
  • I følge Java-navnekonvensjoner , anbefales det at vi navngir konstant med alle store bokstaver

Egenskaper til Enum i Java

Det er visse egenskaper etterfulgt av Enum som nevnt nedenfor:

  • Hver enum implementeres internt ved å bruke Class.
  • Hver enum-konstant representerer en gjenstand av type enum.
  • Enum-type kan sendes som argument til bytte om uttalelser.
  • Hver enum-konstant er alltid implisitt offentlig statisk finale . Siden det er statisk , kan vi få tilgang til det ved å bruke enum Name. Siden det er endelig , vi kan ikke lage barneopptegnelser.
  • Vi kan erklære main()-metoden inne i enumet. Derfor kan vi påkalle enum direkte fra ledeteksten.

Nedenfor er implementeringen av egenskapene ovenfor:

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

>

>

ipconfig for ubuntu
Produksjon

Mondays are bad.>

Java Enum-programmer

1. Hovedfunksjon inne i Enum

Vi kan deklarere en hovedfunksjon inne i en enum da vi kan påkalle enum direkte fra ledeteksten.

Nedenfor er implementeringen av egenskapen ovenfor:

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

>

>

Produksjon

RED>

2. Sløyfe gjennom Enum

Vi kan iterere over Enum ved å bruke verdier ( ) og loop. values()-funksjonen returnerer en rekke Enum-verdier som konstanter som vi kan iterere over verdiene.

Nedenfor er implementeringen av loopen gjennom 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);> >}> >}> }>

>

>

Produksjon

RED GREEN BLUE>

3. Oppgi en brytererklæring

Java




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

>

>

Produksjon

Other color observed>

Enum og Arv

  • Alle opptegnelser utvider seg implisitt java.lang.Enum klasse . Som en klasse kan bare forlenge en foreldre i Java, kan ikke en enum utvide noe annet.
  • toString()-metoden er overstyrt i java.lang.Enum klasse , som returnerer enum konstant navn.
  • enum kan implementere mange grensesnitt.

Enum og konstruktør

  • Enum kan inneholde en konstruktør og den utføres separat for hver enum-konstant på tidspunktet for enum-klassen lastes.
  • Vi kan ikke opprette enum-objekter eksplisitt, og derfor kan vi ikke påkalle enum-konstruktøren direkte.

Enum og metoder

Enum kan inneholde begge deler betong metoder og abstrakt metoder. Hvis en enum-klasse har en abstrakt metode, må hver forekomst av enum-klassen implementere den.

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

>

>

Produksjon

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

Vanlige spørsmål om Enum i Java

Q1. Kan vi opprette forekomsten av Enum med det nye nøkkelordet?

År:

Nei, vi kan ikke opprette forekomsten av Enum-nøkkelordet fordi det kun inneholder private konstruktører.

Q2. Kan vi ha en abstrakt metode i Enum?

År:

Ja, vi har en abstrakt metode i Enum.

Q3. Hva er hensikten med values()-metoden i enum?

År:

I Java kan verdier( )-metoden brukes til å returnere alle verdier som er tilstede inne i enum.

Q4. Hva er hensikten med valueOf()-metoden i enum?

År:

VerdiOf()-metoden returnerer enum-konstanten til den angitte strengverdien hvis den finnes.

Q5. Hva er hensikten med ordinal()-metoden i enum?

År:

Ved å bruke ordinal()-metoden kan hver enum-konstantindeks bli funnet, akkurat som en matriseindeks.

Q6. Skriv et program i Java for å beskrive bruken av values(), valueOf(), og ordinal()-metoder i enum.

År:

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

>

solfylt deol alder

>

Produksjon

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

Neste artikkel om enum: Enum med tilpasset verdi i Java