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 {

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

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ā.

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.