This shows you the differences between two versions of the page.
|
java:inner_class_member_hidding [2020/03/09 09:08] gthanos |
java:inner_class_member_hidding [2020/03/15 20:45] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Επανα-ορισμός πεδίων της εξωτερικής κλάσης στην εσωτερική κλάση ====== | ||
| - | |||
| - | <WRAP important 70% center round> | ||
| - | ===Η συγκεκριμένη ενότητα είναι προαιρετική και μπορείτε να την παραλήψετε κατά την ανάγνωση της θεωρείας του μαθήματος.=== | ||
| - | </ | ||
| - | |||
| - | Σε προηγούμενο παράδειγμα είδαμε την προσβασιμότητα στα πεδία και τις μεθόδους της εξωτερικής κλάσης. Τι γίνεται όμως όταν μία μέθοδος καλεί μία άλλη μέθοδο η οποία υπάρχει τόσο στη εσωτερική όσο και στην εξωτερική κλάση. Αντίστοιχα, | ||
| - | |||
| - | <code java ShadowTest.java> | ||
| - | public class ShadowTest { | ||
| - | |||
| - | public int x = 100; | ||
| - | |||
| - | class FirstLevel { | ||
| - | |||
| - | public int x = 200; | ||
| - | |||
| - | String toString(int x) { | ||
| - | | ||
| - | } | ||
| - | | ||
| - | public String toString() { return "X in FirstLevel is " | ||
| - | } | ||
| - | | ||
| - | 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 | ||
| - | </ | ||
| - | |||
| - | | Προηγούμενο : [[ : | ||