java:inner_class_member_hidding
This is an old revision of the document!
Επανα-ορισμός πεδίων της εξωτερικής κλάσης στην εσωτερική κλάση
Η συγκεκριμένη ενότητα είναι προαιρετική και μπορείτε να την παραλήψετε κατά την ανάγνωση της θεωρείας του μαθήματος.
Σε προηγούμενο παράδειγμα είδαμε την προσβασιμότητα στα πεδία και τις μεθόδους της εξωτερικής κλάσης. Τι γίνεται όμως όταν μία μέθοδος καλεί μία άλλη μέθοδο η οποία υπάρχει τόσο στη εσωτερική όσο και στην εξωτερική κλάση. Αντίστοιχα, τι γίνεται όταν μία μέθοδος καλεί ένα πεδίο το οποίο υπάρχει στην εσωτερική και την εξωτερική κλάση; Το παρακάτω παράδειγμα απαντά στα παραπάνω ερωτήματα:
- ShadowTest.java
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_member_hidding.1584305113.txt.gz · Last modified: 2020/03/15 20:45 (external edit)