opsomming op Java

In Java zijn opsommingen (enums) een speciaal type dat wordt gebruikt om een ​​groep benoemde constanten te definiëren.

  • Enums helpen bij de leesbaarheid, onderhoudbaarheid en typeveiligheid in programma's door betekenisvolle namen toe te wijzen aan gehele waarden.
  • Dit is vooral handig als we een kleine set mogelijke waarden hebben voor een item zoals routebeschrijving, dagen van de week, enz.

Een Enum maken

Syntaxis:

enum EnumNaam {

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

Uitvoer
RED  

Verklaring van enum in Java

Enum-declaratie kan buiten een klasse of binnen een klasse worden gedaan, maar niet binnen een methode.

1. Verklaring buiten de les

Zoals we in het bovenstaande voorbeeld hebben gezien, kunnen enums buiten een klasse worden gedeclareerd en rechtstreeks worden benaderd

2. Verklaring binnen een klas

Enums kunnen ook binnen een klasse worden gedeclareerd, maar niet binnen een methode.

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

Uitvoer
RED  

Eigenschappen van Enum op Java

Er zijn bepaalde eigenschappen gevolgd door Enum, zoals hieronder vermeld:

  • Klassetype: Intern geïmplementeerd als klasse.
  • Enum-constanten: Elke constante is een object van het type enum.
  • Ondersteuning voor schakelaars: Kan worden gebruikt in switch-instructies.
  • Impliciete modificatoren: Constanten zijn openbare statische finale.
  • Erfenis: Enums kunnen geen klassen uitbreiden, maar kunnen wel interfaces implementeren.

Opsomming in een Switch-instructie

Enums kunnen in switch-instructies worden gebruikt om verschillende cases af te handelen op basis van de enum-constanten.

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

Uitvoer
Other color  

Enum met methoden en constructor

Bij enums kunnen constructors en methoden voor elke constante afzonderlijk worden uitgevoerd

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

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

Enum met abstracte methoden

Enums kunnen abstracte methoden declareren die elke constante moet implementeren.

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

Uitvoer
1st day 5th day  

Enums herhalen met waarden()

Gebruik EnumType.values() om alle enum-constanten te doorlopen.

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

Uitvoer
RED GREEN BLUE  

Enum en EnumSet (iteratie van specifiek bereik)

EnumSet.range() maakt iteratie over een specifiek bereik van enum-constanten mogelijk.

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

Uitvoer
TUESDAY WEDNESDAY THURSDAY FRIDAY  

Een klas aanmaken met een Enum-lid

We kunnen enums combineren met reguliere klassen om uw programmalogica te organiseren. Een enum kan een lidvariabele in een klasse zijn en methoden kunnen acties uitvoeren op basis van de enumwaarde.

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

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

Uitleg:

  • De EnumTest-klasse in bovenstaande code is gemaakt met een lid van het type Day. Het heeft een constructor die Day enum als argument neemt en deze toewijst.
  • De klasse heeft de methode tellItLikeItIs() die een bericht afdrukt op basis van de waarde van de dag.
  • De hoofdmethode omvat objecten van EnumTest die verschillende Day-enumwaarden gebruiken en voor elk ervan de tellItLikeItIs()-methode aanroept.

OPMERKING: Het nieuwe sleutelwoord wordt gebruikt omdat EnumTest een gewone klasse is en geen enum, dus we maken instanties en geven de enum-waarde door aan de constructor ervan.



Dit Vind Je Misschien Leuk