logo

enum Java valodā

Java uzskaitījumi (enums) ir īpašs veids, ko izmanto, lai definētu nosaukto konstantu grupu.

  • Enums palīdz programmu lasāmības uzturēšanai un ierakstu drošībai, piešķirot veselu skaitļu vērtībām nozīmīgus nosaukumus.
  • Galvenokārt noderīgi, ja vienumam ir neliels iespējamo vērtību kopums, piemēram, norādes nedēļas dienas utt.

Enum izveide

Sintakse:



enum EnumName {

rinda un prioritātes rinda java

CONSTANT1 CONSTANT2 CONSTANT3;

}



Java
enum TrafficLight {  RED GREEN YELLOW; } public class Test{    public static void main(String[] args){    TrafficLight x = TrafficLight.RED;  System.out.println(x);  } } 

Izvade
RED 

Enum deklarācija Java valodā

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

1. Deklarācija ārpus nodarbības

Kā mēs redzējām iepriekš minētajā piemērā, enumus var deklarēt ārpus klases un tiem piekļūt tieši

jvm java

2. Deklarācija klasē

Enums var tikt deklarēts arī klasē, bet ne metodē.



Java
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 

Enum īpašības Java valodā

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

  • Klases veids: Iekšēji ieviests kā klase.
  • Enum konstantes: Katra konstante ir enum tipa objekts.
  • Slēdža atbalsts: Var izmantot slēdžu paziņojumos.
  • Netiešās modifikācijas: Konstantes ir publiskas statiskas galīgas.
  • Mantojums: Enums nevar paplašināt klases, bet var ieviest saskarnes.

Enum Switch paziņojumā

Enums var tikt izmantots slēdžu priekšrakstos, lai apstrādātu dažādus gadījumus, pamatojoties uz enum konstantēm.

Java
import java.io.*; class GFG{    // Enum Declared  enum Color {  RED  GREEN  BLUE  YELLOW;  }  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');  break;  case GREEN:  System.out.println('Green color');  break;  case BLUE:  System.out.println('Blue color');  break;  default:  System.out.println('Other color');  }  } } 

Izvade
Other color 

Enum ar metodēm un konstruktoru

Enums katrai konstantei var būt atsevišķi izpildīti konstruktori un metodes

Java
enum Color{  RED GREEN BLUE;  private Color(){    System.out.println('Constructor called for: ' + this);  }  public void display(){    System.out.println('Color is: ' + this);  } } public class Test{    public static void main(String[] args){    Color c1 = Color.RED;  c1.display();  } } 

Izvade
Constructor called for: RED Constructor called for: GREEN Constructor called for: BLUE Color is: RED 

Enum ar abstraktām metodēm

Enums var deklarēt abstraktas metodes, kuras jāievieš katrai konstantei.

Java
enum Day{    MONDAY{    public String getNumber(){  return '1st day';     }  }  FRIDAY{    public String getNumber(){  return '5th day';     }  };    public abstract String getNumber(); } public class EnumTest {  public static void main(String[] args){    System.out.println(Day.MONDAY.getNumber());   System.out.println(Day.FRIDAY.getNumber());  } } 

Izvade
1st day 5th day 

Enumu atkārtošana, izmantojot vērtības ()

Izmantojiet EnumType.values(), lai cilpu cauri visām enum konstantēm.

Java
enum Color{  RED GREEN BLUE;   } public class Test{    public static void main(String[] args){    for (Color c : Color.values()){    System.out.println(c);  }  } } 

Izvade
RED GREEN BLUE 

Enum un EnumSet (specifiskā diapazona iterācija)

EnumSet.range() ļauj veikt iterāciju noteiktā enum konstantu diapazonā.

tukšs saraksts java
Java
import java.util.EnumSet; public class EnumSetExample{    enum Day{    SUNDAY MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAY;     }  public static void main(String[] args){    EnumSet<Day> workDays = EnumSet.range(Day.TUESDAY Day.FRIDAY);  for (Day d : workDays){    System.out.println(d);  }  } } 

Izvade
TUESDAY WEDNESDAY THURSDAY FRIDAY 

Klases izveide ar Enum dalībnieku

Mēs varam apvienot enums ar parastajām nodarbībām, lai sakārtotu jūsu programmas loģiku. Enum var būt klases locekļa mainīgais, un metodes var veikt darbības, pamatojoties uz enum vērtību.

Java
/*package whatever //do not write package name here */ import java.io.*; enum Day {  MONDAY  TUESDAY  WEDNESDAY  THURSDAY  FRIDAY  SATURDAY  SUNDAY } public class EnumTest {  // Enum member variable  Day day;  // constructor which takes enum value  public EnumTest(Day day) { this.day = day; }  // method to execute action as per enum value  public void tellItLikeItIs()  {  switch (day) {  case MONDAY:  System.out.println('Mondays are tough');  break;  case TUESDAY:  System.out.println('Tuesday are better');  break;  case WEDNESDAY:  System.out.println('Wednesday are okay');  break;  case THURSDAY:  System.out.println('Thursdays are hopeful');  break;  case FRIDAY:  System.out.println('Fridays are exciting');  break;  case SATURDAY:  System.out.println('Saturdays are relaxing');  break;  case SUNDAY:  System.out.println('Sunday are for rest');  break;  default:  System.out.println('Everyday are good');  break;  }  }  public static void main(String[] args)  {  EnumTest firstDay = new EnumTest(Day.MONDAY);  firstDay.tellItLikeItIs();  EnumTest thirdDay = new EnumTest(Day.WEDNESDAY);  thirdDay.tellItLikeItIs();  EnumTest fifthDay = new EnumTest(Day.FRIDAY);  fifthDay.tellItLikeItIs();  EnumTest sixthDay = new EnumTest(Day.SATURDAY);  sixthDay.tellItLikeItIs();  EnumTest seventhDay = new EnumTest(Day.SUNDAY);  seventhDay.tellItLikeItIs();  } } 

Izvade
Mondays are tough Wednesday are okay Fridays are exciting Saturdays are relaxing Sunday are for rest 

Paskaidrojums:

  • EnumTest klase iepriekš minētajā kodā ir izveidota ar Day tipa dalībnieku. Tam ir konstruktors, kas ņem Day enum kā argumentu un piešķir to.
  • Klasei ir metode tellItLikeItIs(), kas izdrukā ziņojumu, pamatojoties uz dienas vērtību.
  • Galvenā metode ietver EnumTest objektus, izmantojot dažādas Day enum vērtības un katram izsaucot tellItLikeItIs() metodi.

PIEZĪME: Jaunais atslēgvārds tiek izmantots, jo EnumTest ir parasta klase, nevis enum, tāpēc mēs izveidojam gadījumus un nododam enum vērtību tās konstruktoram.