This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
|
java:anon_inner_classes [2015/04/30 16:08] gthanos |
java:anon_inner_classes [2016/02/26 11:15] 127.0.0.1 external edit |
||
|---|---|---|---|
| Line 119: | Line 119: | ||
| Παρατηρήστε ότι η μεταβλητή //frenchGreeting// προκύπτει από μία κλάση που υλοποιεί το inteface //HelloWorld// η μεταβλητή //spanishGreeting// προκύπτει ως επέκταση της κλάση //EnglishGreeting//. | Παρατηρήστε ότι η μεταβλητή //frenchGreeting// προκύπτει από μία κλάση που υλοποιεί το inteface //HelloWorld// η μεταβλητή //spanishGreeting// προκύπτει ως επέκταση της κλάση //EnglishGreeting//. | ||
| + | ===== Πρόσβαση στις τοπικές μεταβλητές και στις μεταβλητές της εξωτερικής κλάσης ===== | ||
| + | Σε αναλογία με τις [[java:local_inner_classes|τοπικές εμφωλευμένες κλάσεις]] οι ανώνυμες κλάσεις έχουν τις ίδιες δυνατότητες πρόσβασης στις τοπικές μεταβλήτές της μεθόδου στην οποία ορίζονται: | ||
| + | * Η ανώνυμη κλάση έχει πρόσβαση στις μεταβλητές της εξωτερικής κλάσης. | ||
| + | * Η ανώνυμη κλάση δεν μπορεί να έχει πρόσβαση σε τοπικές μεταβλητές της μεθόδου στην οποία ορίζονται αν αυτές δεν έχουν δηλωθεί ως //final//. | ||
| + | * Όπως σε όλες τις μη στατικές εμφωλευμένες κλάσεις ο ορισμός του ίδιου τύπου δεδομένων στην εσωτερική και την εξωτερική κλάση "//κρύβει//" τον συγκεκριμένο τύπο δεδομένων από την εξωτερική κλάση. | ||
| + | * Δεν μπορείτε να ορίσετε στατικές μεταβλητές ή μεθόδους μέσα σε μία ανώνυμη κλάση. | ||
| - | + | Σε μία ανώνυμη κλάση μπορείτε να ορίσετε τα εξής: | |
| + | * Πεδία | ||
| + | * Επιπλέον μεθόδους που δεν ορίζονται στη interface ή στην κλάση που επεκτείνει. | ||
| + | * Μεθόδους ή block αρχικοποίησης πεδίων της κλάσης. | ||
| + | * Τοπικές κλάσεις που ανήκουν στη ανώνυμη κλάση. | ||
| + | * **ΔΕΝ** μπορείτε και __δεν έχει νόημα__ να ορίσετε κατασκευαστές μέσα σε μία ανώνυμη κλάση. | ||