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
Next revision Both sides next revision
java:local_inner_classes [2015/04/30 13:48]
gthanos [Τοπικές κλάσεις]
java:local_inner_classes [2015/04/30 13:55]
gthanos [Πρόσβαση στις τοπικές μεταβλητές της μεθόδου]
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
         numberLength = 7;         numberLength = 7;
 </​code>​ </​code>​
 +
 +Ομοίως αν προσθέσετε τους προσδιοριστές //final// στις παραμέτρους //​**phoneNumber1**//​ και //​**phoneNumber2**//​ τότε θα μπορείτε να εισάγετε την μέθοδο //​**printOriginalNumbers**//​ οι οποία χρησιμοποιεί τις μεταβλητές αυτές.
 +
 +<WRAP tip 80% center round>
 +Στην **Java 8** ή μεταγενέστερα εισάγεται η έννοια της //​effectively final// μεταβλητής. Ως //​effectively final// ορίζεται κάθε τοπική μεταβλητή της οποίας η τιμή δεν μεταβάλλεται μετά την αρχικοποίηση της.
 +</​WRAP>​
  
  
java/local_inner_classes.txt · Last modified: 2016/02/26 11:15 (external edit)