User Tools

Site Tools


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 11:25]
gthanos
java:inner_class_member_hidding [2017/04/02 00:00]
gthanos
Line 1: Line 1:
 ====== Επανα-ορισμός πεδίων της εξωτερικής κλάσης στην εσωτερική κλάση ====== ====== Επανα-ορισμός πεδίων της εξωτερικής κλάσης στην εσωτερική κλάση ======
  
-Σε προηγούμενο παράδειγμα είδαμε την προσβασιμότητα στα πεδία και τις μεθόδους της εξωτερικής κλάσης. Τι γίνεται όμως όταν υπάρχει μία μέθοδος που καλεί μία άλλη μέθοδο η οποία υπάρχει τόσο στη εσωτερική όσο και στην εξωτερική κλάση. Σε αναλογία τι γίνεται όταν μία μέθοδος καλεί ένα πεδίο το οποίο υπάρχει στην εσωτερική και την εξωτερική κλάση; Το παρακάτω παράδειγμα απαντά στις παραπάνω απορίες.+Σε προηγούμενο παράδειγμα είδαμε την προσβασιμότητα στα πεδία και τις μεθόδους της εξωτερικής κλάσης. Τι γίνεται όμως όταν μία μέθοδος καλεί μία άλλη μέθοδο η οποία υπάρχει τόσο στη εσωτερική όσο και στην εξωτερική κλάση. Αντίστοιχατι γίνεται όταν μία μέθοδος καλεί ένα πεδίο το οποίο υπάρχει στην εσωτερική και την εξωτερική κλάση; Το παρακάτω παράδειγμα απαντά στα παραπάνω ερωτήματα:
  
 <code java ShadowTest.java> <code java ShadowTest.java>
Line 12: Line 12:
     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>
  
-| Προηγούμενο : [[ :java: |  ]] | [[ :toc | Περιεχόμενα ]] | Επόμενο: [[ :java:local_inner_classes | Τοπικές κλάσεις ]]  |+Το αποτέλεσμα εκτέλεσης του παραπάνω προγράμματος δίνεται παρακάτω: 
 + 
 +<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> 
 + 
 +| Προηγούμενο : [[ :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)