Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Προγραμματισμός Java

Java 1.5 Enum Tutorial

Ο τύπος enum είναι ένα νέο χαρακτηριστικό στη γλώσσα Java 1.5.0 , με σκοπό την επίλυση αδυναμίες στον τρόπο που απαριθμούνται τιμές διακινούνται σε προηγούμενες εκδόσεις Java . Στην πιο βασική της , υιοθετεί μια δομή παρόμοια με τον τύπο enum σε γλώσσες C -based ? Ωστόσο, είναι πολύ πιο ισχυρό . Το αντικείμενο Enum
Η

Πριν προχωρήσω στα enums οι ίδιοι , είναι καλύτερο να τονίσει το πρόβλημα που ο νέος τύπος enum δημιουργήθηκε για να λύσει . Εξετάστε την ακόλουθη τάξη :

Ημερολόγιο δημόσια τάξη { int

dayOfWeek GO

δημόσια στατική τελική int Δευτέρα = 0

GO δημόσια στατική τελική int Τρίτη = 1

GO δημόσια στατική τελική int Τετάρτη = 2

GO ....

άκυρη setDayOfWeek ( ημερομηνία int) { ... } }


Η κατηγορία αυτή αποθηκεύει την ημέρα της εβδομάδας , χρησιμοποιώντας ένα σύνολο που απαριθμούνται σταθερές με ακέραιες τιμές από 0-7 , το καθένα αντιστοιχεί σε μια διαφορετική ημέρα , και αναμένεται ότι άλλοι προγραμματιστές που χρησιμοποιούν αυτή την κατηγορία θα χρησιμοποιήσει αυτές τις σταθερές όταν χρησιμοποιείτε την κλάση . Ωστόσο, τίποτα δεν επιβάλλει αυτό . Άλλες κατηγορίες θα μπορούσε να αγνοήσει τις σταθερές , χρησιμοποιούν τα δικά τους σταθερές ( ξεκινώντας με την Κυριακή , ίσως) κατά λάθος , ή ακόμη , ως αποτέλεσμα ενός σφάλματος , περνούν στο \\ " 8 \\ " ως ημέρα της εβδομάδας , πιθανώς επιτρέποντας σε έναν bug ώστε να προχωρήσει περαιτέρω από ό, τι θα έπρεπε. Είναι επίσης ιδιαίτερα κατατοπιστική σε debugging , καθώς η αξία των \\ " dayOfWeek \\ " θα πρέπει να τυπώνονται στην κονσόλα ή σε ένα πρόγραμμα εντοπισμού σφαλμάτων απλά ως έναν ακέραιο που πρέπει να ανευρεθεί στον πηγαίο κώδικα . Οι enums σχεδιαστεί για την αντιμετώπιση όλων αυτών των θεμάτων . Το παρακάτω είναι η ίδια τάξη , χρησιμοποιώντας το enum τύπος αντί ενός συνόλου που απαριθμούνται σταθερές:

Ημερολόγιο δημόσια τάξη {
Ημέρα δημόσια enum { ΔΕΥΤΕΡΑ ΤΡΙΤΗ, ΤΕΤΑΡΤΗ ΠΕΜΠΤΗ , ΠΑΡΑΣΚΕΥΗ, ΣΑΒΒΑΤΟ , ΚΥΡΙΑΚΗ

} Ημέρα dayOfWeek

άκυρη setDayOfWeek (Ημέρα δ) { ... } }


Το παραπάνω κώδικα , εκτός του ότι είναι πιο καθαρά και πιο ευανάγνωστο , αντιμετωπίζει όλα τα προβλήματα που αναφέρθηκαν παραπάνω με απαριθμούνται σταθερές . Οι πελάτες είναι πλέον αναγκασμένοι να χρησιμοποιούν μόνο τα απαριθμούνται οι ίδιοι τις αξίες και debuggers θα δείξει το όνομα του απογραφέντα αξία και όχι ένας ακέραιος . Επιπλέον, enums έχουν έναν αριθμό άλλων πλεονεκτημάτων . Για παράδειγμα, μπορούν να χρησιμοποιηθούν με το νέο χαρακτηριστικό για - κάθε βρόχος οποίο προστέθηκε σε Java 1.5.0. Η τάξη Ημερολόγιο θα μπορούσε να περιλαμβάνει τη μέθοδο όπως αυτή :

void printDays ( ) {
για ( Ημέρα d: Day.values ​​( ) ) {
System.out.println ( " Σήμερα " + δ)
GO

} }

Αυτή η μέθοδος θα επαναλάβει μέσω όλες τις ημέρες και να εκτυπώσετε τα ονόματά τους .

τα enums είναι μαθήματα στο δικό τους δικαίωμα, το οποίο σημαίνει ότι μπορούν να έχουν τις δικές τους μεθόδους και κατασκευαστές . Ας εξετάσουμε το ακόλουθο enum , το οποίο αποθηκεύει τους χαρακτήρες σε ένα παιχνίδι , που επιτρέπει με μια σύντομη περιγραφή αυτού του χαρακτήρα :

δημόσια enum Χαρακτήρας { />
MYSTERIOUS_WOMAN ( " Φορώντας ένα κόκκινο φόρεμα . » ) , />
ΑΝΤΑΓΩΝΙΣΤΗ ( " Στάζει κακό . ")?

String περιγραφή
GO />

this.description = />

} }
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα