User Tools

Site Tools


java:enum

Enumerations

Τα enumerations για την Java είναι ένας ειδικός τύπος δεδομένων που χρησιμοποιείται για την απεικόνιση συνόλων σταθερών τιμών. Όλα τα enumerations είναι απόγονοι της κλάσης java.lang.Enum. Μπορείτε να θεωρήσετε όλους τους enumerated τύπους ως κλάσεις ειδικού σκοπού που μπορούν να περιέχουν πεδία αλλά και μεθόδους.

Η πιο απλή δήλωση ενός enumerated τύπου είναι η παρακάτω.

LevelUsage.java
enum Level { HIGH, MEDIUM, LOW };
 
class LevelUsage {
  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 μπορείτε να το κάνετε ως εξής:

LevelUsage.java
enum Level { HIGH, MEDIUM, LOW };
 
class LevelUsage {
  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

LevelUsage.java
enum Level { HIGH, MEDIUM, LOW };
 
class LevelUsage {
  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, όπως παρακάτω:

LevelUsage.java
enum Level { HIGH, MEDIUM, LOW };
 
class LevelUsage {
  static void main(String []args) {
    Level level = Level.HIGH;
    for(Level l: Level.values()) 
      System.out.println(l);
  }
}

Για να εκτυπώσετε την τιμή ενός enum ως αλφαριθμητικό μπορείτε να χρησιμοποιήσετε τη μέθοδο name της κλάσης java.lang.Enum:

enum Level { HIGH, MEDIUM, LOW };
 
class LevelUsage {
  static void main(String []args) {
    Level level = Level.HIGH;
    System.out.println("Current level is " + level.name());
  }
}
java/enum.txt · Last modified: 2022/02/24 12:44 by gthanos