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 revisionPrevious revision
Next revision
Previous revision
java:inner_class_member_hidding [2017/02/06 13:39] 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>
  
 Σε προηγούμενο παράδειγμα είδαμε την προσβασιμότητα στα πεδία και τις μεθόδους της εξωτερικής κλάσης. Τι γίνεται όμως όταν μία μέθοδος καλεί μία άλλη μέθοδο η οποία υπάρχει τόσο στη εσωτερική όσο και στην εξωτερική κλάση. Αντίστοιχα, τι γίνεται όταν μία μέθοδος καλεί ένα πεδίο το οποίο υπάρχει στην εσωτερική και την εξωτερική κλάση; Το παρακάτω παράδειγμα απαντά στα παραπάνω ερωτήματα: Σε προηγούμενο παράδειγμα είδαμε την προσβασιμότητα στα πεδία και τις μεθόδους της εξωτερικής κλάσης. Τι γίνεται όμως όταν μία μέθοδος καλεί μία άλλη μέθοδο η οποία υπάρχει τόσο στη εσωτερική όσο και στην εξωτερική κλάση. Αντίστοιχα, τι γίνεται όταν μία μέθοδος καλεί ένα πεδίο το οποίο υπάρχει στην εσωτερική και την εξωτερική κλάση; Το παρακάτω παράδειγμα απαντά στα παραπάνω ερωτήματα:
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.1486388356.txt.gz · Last modified: 2017/02/06 13:39 by gthanos