java:anon_inner_classes

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision Both sides next revision
java:anon_inner_classes [2015/04/30 16:08]
gthanos
java:anon_inner_classes [2015/04/30 16:30]
gthanos
Line 118: Line 118:
  
 Παρατηρήστε ότι η μεταβλητή //​frenchGreeting//​ προκύπτει από μία κλάση που υλοποιεί το inteface //​HelloWorld//​ η μεταβλητή //​spanishGreeting//​ προκύπτει ως επέκταση της κλάση //​EnglishGreeting//​. Παρατηρήστε ότι η μεταβλητή //​frenchGreeting//​ προκύπτει από μία κλάση που υλοποιεί το inteface //​HelloWorld//​ η μεταβλητή //​spanishGreeting//​ προκύπτει ως επέκταση της κλάση //​EnglishGreeting//​.
 +
 +===== Πρόσβαση στις τοπικές μεταβλητές και στις μεταβλητές της εξωτερικής κλάσης =====
 +
 +Σε αναλογία με τις [[java:​local_inner_classes|τοπικές εμφωλευμένες κλάσεις]] οι ανώνυμες κλάσεις έχουν τις ίδιες δυνατότητες πρόσβασης στις τοπικές μεταβλήτές της μεθόδου στην οποία ορίζονται:​
 +  * Η ανώνυμη κλάση έχει πρόσβαση στις μεταβλητές της εξωτερικής κλάσης.
 +  * Η ανώνυμη κλάση δεν μπορεί να έχει πρόσβαση σε τοπικές μεταβλητές της μεθόδου στην οποία ορίζονται αν αυτές δεν έχουν δηλωθεί ως //final//.
 +  * Όπως σε όλες τις μη στατικές εμφωλευμένες κλάσεις ο ορισμός του ίδιου τύπου δεδομένων στην εσωτερική και την εξωτερική κλάση "//​κρύβει//"​ τον συγκεκριμένο τύπο δεδομένων από την εξωτερική κλάση.
 +  * Δεν μπορείτε να ορίσετε στατικές μεταβλητές ή μεθόδους μέσα σε μία ανώνυμη κλάση.
 +
 +Σε μία ανώνυμη κλάση μπορείτε να ορίσετε τα εξής:
 +  * Πεδία
 +  * Επιπλέον μεθόδους που δεν ορίζονται στη interface ή στην κλάση που επεκτείνει.
 +  * Μεθόδους ή block αρχικοποίησης πεδίων της κλάσης.
 +  * Τοπικές κλάσεις που ανήκουν στη ανώνυμη κλάση.
 +  * **ΔΕΝ** μπορείτε και δεν έχει νόημα να ορίσετε κατασκευαστές μέσα σε μία ανώνυμη κλάση.
 +
  
  
java/anon_inner_classes.txt · Last modified: 2017/05/12 14:44 by gthanos