====== Επανα-ορισμός πεδίων της εξωτερικής κλάσης στην εσωτερική κλάση ======
===Η συγκεκριμένη ενότητα είναι προαιρετική και μπορείτε να την παραλήψετε κατά την ανάγνωση της θεωρείας του μαθήματος.===
Σε προηγούμενο παράδειγμα είδαμε την προσβασιμότητα στα πεδία και τις μεθόδους της εξωτερικής κλάσης. Τι γίνεται όμως όταν μία μέθοδος καλεί μία άλλη μέθοδο η οποία υπάρχει τόσο στη εσωτερική όσο και στην εξωτερική κλάση. Αντίστοιχα, τι γίνεται όταν μία μέθοδος καλεί ένα πεδίο το οποίο υπάρχει στην εσωτερική και την εξωτερική κλάση; Το παρακάτω παράδειγμα απαντά στα παραπάνω ερωτήματα:
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 | Τοπικές κλάσεις ]] |