====== Enumerations ====== Τα //enumerations// στην είναι ένας ειδικός τύπος δεδομένων που χρησιμοποιείται για την απεικόνιση συνόλων σταθερών τιμών. Όλα τα //enumerations// είναι απόγονοι της κλάση [[http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html|java.lang.Enum]]. Μπορείτε να θεωρήσετε όλους τους enumerated τύπους ως ειδικές κλάσεις που μπορούν να περιέχουν πεδία αλλά και μεθόδους. Η πιο απλή δήλωση ενός enumerated τύπου είναι η παρακάτω. enum Level { HIGH, MEDIUM, LOW }; public class LevelUsage { public static void main(String []args) { Level level = Level.HIGH; System.out.println("level: "+level); } } Καθώς το //enum// αποτελεί από μόνο του τύπο δεδομένων μπορεί να αποθηκευτεί μόνο του σε αρχείο με το όνομα **Level.java**. Παρατηρήστε ότι κάθε τύπος enum δηλώνει μία σειρά από σταθερές. Οι μεταβλητές αυτού του τύπου μπορούν να λάβουν μόνο μία από τις διακριτές τιμές του συνόλου των σταθερών. Από τον παραπάνω κώδικα εξάγεται ότι οι μεταβλητές τύπου enum Level μπορούν να πάρουν τις τιμές **Level.HIGH**, **Level.MEDIUM** και **Level.LOW**. Αν θέλετε να χρησιμοποιήσετε τον τύπο //enum// σε εντολές //if// ή //switch// μπορείτε να το κάνετε ως εξής: 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."); } } ή σε ένα switch 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; } } } Εάν θέλετε να διατρέξετε τις τιμές ενός enum μπορείτε να το κάνετε μέσω μίας εντολής //for// ως εξής: 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); } } Για να εκτυπώσετε την τιμή ενός enum ως αλφαριθμητικό μπορείτε να χρησιμοποιήσετε τη μέθοδο //name//: 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()); } } /* ===== Πεδία και μέθοδοι σε Enum ===== Ένας τύπος enum μπορεί να περιέχει πεδία, κατασκευαστές και μεθόδους ως εξής: enum Level { HIGH (3), //calls constructor with value 3 MEDIUM(2), //calls constructor with value 2 LOW (1); //calls constructor with value 1 private int levelCode; Level(int levelCode) { this.levelCode = levelCode+1; } public void setLevelCode(int lc) { levelCode = lc; } public int getLevelCode() { return this.levelCode; } public String toString() { return "My Level is: "+levelCode; } } public class LevelUsage { public static void main(String [] args) { } } */ |Προηγούμενο: [[:java:string | Αλφαριθμητικά ]] | [[:toc | Περιεχόμενα]] | Επόμενο: [[:java:packages:intro | Πακέτα στη γλώσσα προγραμματισμού Java ]]|