This shows you the differences between two versions of the page.
| 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 | Ανώνυμες εμφωλευμένες κλάσεις ]]| | ||