====== Επανα-ορισμός πεδίων της εξωτερικής κλάσης στην εσωτερική κλάση ====== ===Η συγκεκριμένη ενότητα είναι προαιρετική και μπορείτε να την παραλήψετε κατά την ανάγνωση της θεωρείας του μαθήματος.=== Σε προηγούμενο παράδειγμα είδαμε την προσβασιμότητα στα πεδία και τις μεθόδους της εξωτερικής κλάσης. Τι γίνεται όμως όταν μία μέθοδος καλεί μία άλλη μέθοδο η οποία υπάρχει τόσο στη εσωτερική όσο και στην εξωτερική κλάση. Αντίστοιχα, τι γίνεται όταν μία μέθοδος καλεί ένα πεδίο το οποίο υπάρχει στην εσωτερική και την εξωτερική κλάση; Το παρακάτω παράδειγμα απαντά στα παραπάνω ερωτήματα: public class ShadowTest { public int x = 100; class FirstLevel { public int x = 200; String toString(int x) { return "x = " + x + "\nthis.x = " + this.x + "\nShadowTest.this.x = " + ShadowTest.this.x; } public String toString() { return "X in FirstLevel is "+x+" and "+ShadowTest.this;} } public String toString() { return "X in ShadowTest is "+x; } public static void main(String args[]) { ShadowTest st = new ShadowTest(); ShadowTest.FirstLevel fl = st.new FirstLevel(); System.out.println(fl.toString(23)); System.out.println(st); System.out.println(fl); } } Το αποτέλεσμα εκτέλεσης του παραπάνω προγράμματος δίνεται παρακάτω: x = 23 this.x = 200 ShadowTest.this.x = 100 X in ShadowTest is 100 X in FirstLevel is 200 and X in ShadowTest is 100 | Προηγούμενο : [[ :java:inner_class_access_from_outside | Πρόσβαση από τρίτες κλάσεις στην εσωτερική κλάση ]] | [[ :toc | Περιεχόμενα ]] | Επόμενο: [[ :java:local_inner_classes | Τοπικές κλάσεις ]] |