java:enum

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revision Both sides next revision
java:enum [2016/02/26 12:43]
gthanos created
java:enum [2018/02/09 13:31]
gthanos
Line 1: Line 1:
 ====== Enumerations ====== ====== Enumerations ======
  
-Τα //enumerations// στην είναι ένας ειδικός τύπος δεδομένων που χρησιμοποιείται για την απεικόνιση συνόλων σταθερών τιμών. Όλα τα //enumerations// είναι απόγονοι της κλάση [[http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html|java.lang.Enum]]. Μπορείτε να θεωρήσετε όλους τους enumerated τύπους ως ειδικές κλάσεις που μπορούν να περιέχουν πεδία αλλά και μεθόδους.+Τα //enumerations// για την Java είναι ένας ειδικός τύπος δεδομένων που χρησιμοποιείται για την απεικόνιση συνόλων σταθερών τιμών. Όλα τα //enumerations// είναι απόγονοι της κλάσης [[http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html|java.lang.Enum]]. Μπορείτε να θεωρήσετε όλους τους enumerated τύπους ως ειδικές κλάσεις που μπορούν να περιέχουν πεδία αλλά και μεθόδους
 + 
 +Η πιο απλή δήλωση ενός enumerated τύπου είναι η παρακάτω
  
-Η πιο απλή δήλωση ενός enumerated τύπου είναι η παρακάτω. 
 <code java LevelUsage.java> <code java LevelUsage.java>
 enum Level { HIGH, MEDIUM, LOW }; enum Level { HIGH, MEDIUM, LOW };
  
 public class LevelUsage { public class LevelUsage {
-  public static void main() {+  public static void main(String []args) {
     Level level = Level.HIGH;     Level level = Level.HIGH;
     System.out.println("level: "+level);     System.out.println("level: "+level);
Line 14: Line 15:
 } }
 </code> </code>
 +
 +<WRAP tip 80% center round>
 +Καθώς το //enum// αποτελεί από μόνο του τύπο δεδομένων μπορεί να αποθηκευτεί μόνο του σε αρχείο με το όνομα **Level.java**.
 +
 +Παρατηρήστε ότι κάθε τύπος enum δηλώνει μία σειρά από σταθερές. Οι μεταβλητές αυτού του τύπου μπορούν να λάβουν μόνο μία από τις διακριτές τιμές του συνόλου των σταθερών.
 +</WRAP>
 +
 +Από τον παραπάνω κώδικα εξάγεται ότι οι μεταβλητές τύπου enum Level μπορούν να πάρουν τις τιμές **Level.HIGH**, **Level.MEDIUM** και **Level.LOW**. Αν θέλετε να χρησιμοποιήσετε τον τύπο //enum// σε εντολές //if// ή //switch//  μπορείτε να το κάνετε ως εξής:
 +
 +<code java LevelUsage.java>
 +enum Level { HIGH, MEDIUM, LOW };
 +
 +public class LevelUsage {
 +  public static void main(String []args) {
 +    Level level = Level.HIGH;
 +    if(level == Level.HIGH) 
 +      System.out.println("Level HIGH may be dangerous!");
 +    if(level == Level.MEDIUM) 
 +      System.out.println("Level MEDIUM is excellent!");
 +    if(level == Level.LOW) 
 +      System.out.println("Level LOW is safe.");
 +  }
 +}
 +</code>
 +
 +ή σε μία εντολή **switch**
 +
 +<code java LevelUsage.java>
 +enum Level { HIGH, MEDIUM, LOW };
 +
 +public class LevelUsage {
 +  public static void main(String []args) {
 +    Level level = Level.HIGH;
 +    switch(level) {
 +      case HIGH: 
 +        System.out.println("Level HIGH may be dangerous!");
 +        break;
 +      case MEDIUM:
 +        System.out.println("Level MEDIUM is excellent!");
 +        break;
 +      case LOW:
 +        System.out.println("Level LOW is safe.");
 +        break;
 +    }
 +  }
 +}
 +</code>
 +
 +Εάν θέλετε να διατρέξετε τις τιμές ενός enum μπορείτε να το κάνετε μέσω μίας εντολής //for//, όπως παρακάτω:
 +
 +<code java LevelUsage.java>
 +enum Level { HIGH, MEDIUM, LOW };
 +
 +public class LevelUsage {
 +  public static void main(String []args) {
 +    Level level = Level.HIGH;
 +    for(Level l: Level.values()) 
 +      System.out.println(l);
 +  }
 +}
 +</code>
 +
 +Για να εκτυπώσετε την τιμή ενός enum ως αλφαριθμητικό μπορείτε να χρησιμοποιήσετε τη μέθοδο [[https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html#name--|name]] της κλάσης [[http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html|java.lang.Enum]]:
 +<code java>
 +enum Level { HIGH, MEDIUM, LOW };
 +
 +public class LevelUsage {
 +  public static void main(String []args) {
 +    Level level = Level.HIGH;
 +    System.out.println("Current level is " + level.name());
 +  }
 +}
 +</code>
 +
 +
 +|Προηγούμενο: [[:java:toString | Η μέθοδος toString ]] | [[:toc | Περιεχόμενα]] | Επόμενο: [[:java:packages:intro | Πακέτα στη γλώσσα προγραμματισμού Java ]]|
 +
  
java/enum.txt · Last modified: 2022/02/24 12:44 by gthanos