Skip to main content

Τι είναι μια ανώνυμη εσωτερική τάξη;

Σε αντικειμενοστραφή προγραμματισμό υπολογιστών, μια ανώνυμη εσωτερική τάξη είναι μια κλάση που δηλώνεται μέσα σε μια μέθοδο, αλλά είναι ανώνυμη.Μια ανώνυμη εσωτερική τάξη έχει αρκετούς περιορισμούς που το καθιστούν διαφορετικό από μια κανονική τάξη, συμπεριλαμβανομένου ενός περιορισμού στο πεδίο εφαρμογής των μεταβλητών που μπορεί να έχει πρόσβαση.Υπάρχουν κάποιες πολύ συγκεκριμένες καταστάσεις στις οποίες η χρήση μιας ανώνυμης εσωτερικής κλάσης μπορεί να καταστήσει τον πηγαίο κώδικα πιο ευανάγνωστο, αλλά χρησιμοποιείται κυρίως για να βοηθήσει στην επιβολή της ενθυλάκωσης όπου η δημιουργία ξεχωριστών τάξεων θα μπορούσε να την περιπλέξει.

Η ενθυλάκωση είναι η έννοια του αντικειμενικού προγραμματισμού(OOP) ότι ένα αντικείμενο και τα συστατικά του πρέπει να προστατεύονται με κάποιο τρόπο και δεσμεύονται στο αντικείμενο.Ανώνυμοι εσωτερικές τάξεις και εσωτερικές τάξεις εν γένει, βοηθούν στην υλοποίηση της ενθυλάκωσης για ιδιαίτερα σύνθετα αντικείμενα.Αντί να πρέπει να δημιουργήσουμε μια κλάση που βασίζεται σε ξεχωριστό εξωτερικό, συνδέοντάς τους μαζί τεχνητά και ενδεχομένως εκθέτοντας μερικά από τα συστατικά, μια ανώνυμη εσωτερική τάξη μπορεί να συνδέσει τα δύο μαζί.Βοηθήστε να ξεπεραστούν οι περιορισμοί της ενιαίας κληρονομιάς.Εάν ένα αντικείμενο κληρονομεί από μια τάξη, αλλά στη συνέχεια πρέπει να έχει πρόσβαση σε ένα άλλο, μια εσωτερική τάξη μπορεί να δημιουργηθεί εν πτήσει και στη συνέχεια να περάσει στους κατάλληλους χειριστές.Αυτή η τεχνική είναι κοινή με τους ακροατές και τους ακροατές των εκδηλώσεων.Ο πρωταρχικός περιορισμός είναι ότι μια ανώνυμη εσωτερική τάξη δεν μπορεί να έχει πρόσβαση σε μεταβλητές της μεθόδου στην οποία κατοικεί, εκτός εάν οι μεταβλητές αυτές δηλώνονται ως τελικές.Αυτό οφείλεται στο γεγονός ότι η εσωτερική τάξη θα μπορούσε να συνεχίσει να λειτουργεί πέρα από τη ζωή της τάξης και της μεθόδου στην οποία φωλιάζει.Οι μεταβλητές της κλάσης περιτυλίγματος θα καταστραφούν μόλις τελειώσει η ζωή της, οπότε οι αναφορές που η εσωτερική τάξη κρατιέται θα γίνει άμεσα άκυρη.Η μόνη εξαίρεση σε αυτό είναι μια τελική μεταβλητή, διότι θα υπάρχει πέρα από το παράδειγμα.

Μία από τις πιο συγκεκριμένες χρήσεις για μια ανώνυμη εσωτερική τάξη είναι η προστασία του κώδικα.Πολλές γλώσσες OOP παρέχουν έναν μηχανισμό που ονομάζεται αντανάκλαση.Η αντανάκλαση επιτρέπει σε ένα πρόγραμμα να αναλύσει μια άλλη τάξη και να δει ποιες είναι οι μεταβλητές και οι μέθοδοι του, αλλά όχι ο ίδιος ο κώδικας.Χρησιμοποιώντας μια ανώνυμη εσωτερική τάξη, τα περιεχόμενα της εσωτερικής κλάσης προστατεύονται από τον προβληματισμό και η εσωτερική λειτουργία της μεγαλύτερης τάξης μπορεί να κρυφτεί αποτελεσματικά.