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

Next revision
Previous revision
java:inner_class_member_hidding [2017/02/03 14:01] – created gthanosjava:inner_class_member_hidding [2020/03/15 20:45] (current) – external edit 127.0.0.1
Line 1: Line 1:
-==== Επανα-ορισμός πεδίων της εξωτερικής κλάσης στην εσωτερική κλάση ====+====== Επανα-ορισμός πεδίων της εξωτερικής κλάσης στην εσωτερική κλάση ======
  
-Σε προηγούμενο παράδειγμα είδαμε την προσβασιμότητα στα πεδία και τις μεθόδους της εξωτερικής κλάσης. Τι γίνεται όμως όταν υπάρχει μία μέθοδος που καλεί μία άλλη μέθοδο η οποία υπάρχει τόσο στη εσωτερική όσο και στην εξωτερική κλάση. Σε αναλογία τι γίνεται όταν μία μέθοδος καλεί ένα πεδίο το οποίο υπάρχει στην εσωτερική και την εξωτερική κλάση; Το παρακάτω παράδειγμα απαντά στις παραπάνω απορίες.+<WRAP important 80% 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>
 +
 +Το αποτέλεσμα εκτέλεσης του παραπάνω προγράμματος δίνεται παρακάτω:
 +
 +<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.1486130507.txt.gz · Last modified: 2017/02/03 14:01 (external edit)