java:inner_class_member_hidding

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
java:inner_class_member_hidding [2017/02/06 13:38]
gthanos
java:inner_class_member_hidding [2020/03/09 09:08]
gthanos
Line 1: Line 1:
 ====== Επανα-ορισμός πεδίων της εξωτερικής κλάσης στην εσωτερική κλάση ====== ====== Επανα-ορισμός πεδίων της εξωτερικής κλάσης στην εσωτερική κλάση ======
  
-Σε προηγούμενο παράδειγμα είδαμε την προσβασιμότητα στα πεδία και τις μεθόδους της εξωτερικής κλάσης. Τι γίνεται όμως όταν μία μέθοδος καλεί μία άλλη μέθοδο η οποία υπάρχει τόσο στη εσωτερική όσο και στην εξωτερική κλάση. Σε αναλογία τι γίνεται όταν μία μέθοδος καλεί ένα πεδίο το οποίο υπάρχει στην εσωτερική και την εξωτερική κλάση; Το παρακάτω παράδειγμα απαντά στις παραπάνω απορίες.+<WRAP important 70% center round> 
 +===Η συγκεκριμένη ενότητα είναι προαιρετική και μπορείτε να την παραλήψετε κατά την ανάγνωση της θεωρείας του μαθήματος.=== 
 +</WRAP> 
 + 
 +Σε προηγούμενο παράδειγμα είδαμε την προσβασιμότητα στα πεδία και τις μεθόδους της εξωτερικής κλάσης. Τι γίνεται όμως όταν μία μέθοδος καλεί μία άλλη μέθοδο η οποία υπάρχει τόσο στη εσωτερική όσο και στην εξωτερική κλάση. Αντίστοιχατι γίνεται όταν μία μέθοδος καλεί ένα πεδίο το οποίο υπάρχει στην εσωτερική και την εξωτερική κλάση; Το παρακάτω παράδειγμα απαντά στα παραπάνω ερωτήματα:
  
 <code java ShadowTest.java> <code java ShadowTest.java>
Line 12: Line 16:
     public int x = 200;     public int x = 200;
  
-    void methodInFirstLevel(int x) { +    String toString(int x) { 
-      System.out.println("x = " + x); +       return "x = " + x "\nthis.x = " + this.x "\nShadowTest.this.x = " + ShadowTest.this.x;
-      System.out.println("this.x = " + this.x); +
-      System.out.println("ShadowTest.this.x = " + ShadowTest.this.x);+
     }     }
          
-    String printX() { return "X in FirstLevel is "+x+" and "+ShadowTest.this.printX(); }+    public String toString() { return "X in FirstLevel is "+x+" and "+ShadowTest.this;}
   }   }
      
-  String printX() { return "X in ShadowTest is "+x; }+  public String toString() { return "X in ShadowTest is "+x; }
  
   public static void main(String args[]) {   public static void main(String args[]) {
     ShadowTest st = new ShadowTest();     ShadowTest st = new ShadowTest();
     ShadowTest.FirstLevel fl = st.new FirstLevel();     ShadowTest.FirstLevel fl = st.new FirstLevel();
-    fl.methodInFirstLevel(23); +    System.out.println(fl.toString(23));     
-     +    System.out.println(st); 
-    System.out.println(st.printX()); +    System.out.println(fl);
-    System.out.println(fl.printX());+
   }   }
 } }
 +</code>
 +
 +Το αποτέλεσμα εκτέλεσης του παραπάνω προγράμματος δίνεται παρακάτω:
 +
 +<code>
 +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
 </code> </code>
  
 | Προηγούμενο : [[ :java:inner_class_access_from_outside | Πρόσβαση από τρίτες κλάσεις στην εσωτερική κλάση  ]] | [[ :toc | Περιεχόμενα ]] | Επόμενο: [[ :java:local_inner_classes | Τοπικές κλάσεις ]]  | | Προηγούμενο : [[ :java:inner_class_access_from_outside | Πρόσβαση από τρίτες κλάσεις στην εσωτερική κλάση  ]] | [[ :toc | Περιεχόμενα ]] | Επόμενο: [[ :java:local_inner_classes | Τοπικές κλάσεις ]]  |
  
java/inner_class_member_hidding.txt · Last modified: 2020/03/15 20:45 (external edit)