java:local_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
Previous revision
java:local_inner_classes [2015/04/30 13:48]
gthanos [Τοπικές κλάσεις]
java:local_inner_classes [2016/02/26 11:15] (current)
Line 65: Line 65:
 ===== Πρόσβαση στις τοπικές μεταβλητές της μεθόδου ===== ===== Πρόσβαση στις τοπικές μεταβλητές της μεθόδου =====
  
-Μία τοπική κλάση έχει πρόσβαση στις τοπικές μεταβλητές της μεθόδου μέσα στην οποία συνήθως ορίζεται μόνο αν αυτές έχουν οριστεί ως //final//. Δηλώνοντας μία μεταβλητή ως //final// δηλώνουμε ότι η τιμή αυτή δεν πρόκειται και δεν μπορεί να αλλάξει. Αν βγάλετε τα σχόλια από την γραμμή 15,  +Μία τοπική κλάση έχει πρόσβαση στις τοπικές μεταβλητές της μεθόδου μέσα στην οποία συνήθως ορίζεται μόνο αν αυτές έχουν οριστεί ως //final//. Δηλώνοντας μία μεταβλητή ως //final// δηλώνουμε ότι η τιμή αυτή δεν πρόκειται και δεν μπορεί να αλλάξει. ​Για παράδειγμα η μεταβλητή numberLength δηλώνεται //final//  
-<code java>//numberLength = 7;</​code>​  +<code java> 
-θα παρατηρήσετε ότι λαμβένετε το παρακάτω μήνυμα λάθους+final int numberLength = 10; 
 +</​code>​ 
 +Αν βγάλετε τα σχόλια από την γραμμή 15 ''​numberLength = 7;'', ​θα παρατηρήσετε ότι λαμβάνετε το παρακάτω μήνυμα λάθους:
 <​code>​ <​code>​
 LocalClassExample.java:​15:​ error: cannot assign a value to final variable numberLength LocalClassExample.java:​15:​ error: cannot assign a value to final variable numberLength
Line 73: Line 75:
 </​code>​ </​code>​
  
 +Ομοίως αν προσθέσετε τους προσδιοριστές //final// στις παραμέτρους //​**phoneNumber1**//​ και //​**phoneNumber2**//​ τότε θα μπορείτε να εισάγετε την μέθοδο //​**printOriginalNumbers**//​ οι οποία χρησιμοποιεί τις μεταβλητές αυτές.
 +
 +<WRAP tip 80% center round>
 +Στην **Java 8** ή μεταγενέστερα εισάγεται η έννοια της //​effectively final// μεταβλητής. Ως //​effectively final// ορίζεται κάθε τοπική μεταβλητή της οποίας η τιμή δεν μεταβάλλεται μετά την αρχικοποίηση της.
 +</​WRAP>​
  
 +|Προηγούμενο:​ [[ :​java:​inner_classes| Μη στατικές εμφωλευμένες κλάσεις ​  ]] | Επόμενο:​ [[ :​java:​anon_inner_classes | Ανώνυμες εμφωλευμένες κλάσεις ]]|
java/local_inner_classes.1430401708.txt.gz · Last modified: 2016/02/26 11:15 (external edit)