java:this_operator

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:this_operator [2015/01/22 09:52]
gthanos [Πρόσβαση σε πεδία και μεθόδους των αντικειμένων της γονικής κλάσης μέσω του τελεστή super]
java:this_operator [2015/02/13 14:14]
gthanos
Line 1: Line 1:
-======  ​Oι τελεστές this και super ======+======  ​Ο τελεστής this ======
  
-===== Ο τελεστής this ===== +===== Πρόσβαση στους κατασκευαστές της κλάσης μέσω του τελεστή this =====
- +
-==== Πρόσβαση στους κατασκευαστές της κλάσης μέσω του τελεστή this ====+
  
 Ας ξαναγράψουμε το παρακάτω τμήμα κώδικα το οποίο συναντήσαμε προηγούμενα Ας ξαναγράψουμε το παρακάτω τμήμα κώδικα το οποίο συναντήσαμε προηγούμενα
Line 48: Line 46:
 Ο τελεστής **this** δείχνει στο τρέχον αντικείμενο και χρησιμοποιείται για να προσπελαστεί ένας άλλος κατασκευαστής της ίδιας κλάσης. Ο τελεστής **this** δείχνει στο τρέχον αντικείμενο και χρησιμοποιείται για να προσπελαστεί ένας άλλος κατασκευαστής της ίδιας κλάσης.
  
-==== Πρόσβαση σε πεδία και μεθόδους των αντικειμένων της κλάσης μέσω του τελεστή this ====+===== Πρόσβαση σε πεδία και μεθόδους των αντικειμένων της κλάσης μέσω του τελεστή this =====
  
 Ας ξαναγράψουμε το παρακάτω τμήμα κώδικα το οποίο συναντήσαμε προηγούμενα:​ Ας ξαναγράψουμε το παρακάτω τμήμα κώδικα το οποίο συναντήσαμε προηγούμενα:​
Line 89: Line 87:
 <WRAP tip> <WRAP tip>
 O τελεστής **this** δείχνει στο τρέχον αντικείμενο της εκάστοτε κλάσης,​ για λογαριασμό του οποίου εκτελείται. O τελεστής **this** δείχνει στο τρέχον αντικείμενο της εκάστοτε κλάσης,​ για λογαριασμό του οποίου εκτελείται.
-</​WRAP>​ 
-===== Ο τελεστής super ===== 
- 
-Σε αναλογία με τον τελεστή **this**, ο τελεστής **super** δείχνει στο αντικείμενο της γονικής κλάσης. Προϋπόθεση για την χρήση του τελεστή **super** είναι να υφίσταται γονική κλάση μέσω της διαδικασίας της κληρονομικότητας. ​ 
- 
-==== Πρόσβαση στους κατασκευαστές της γονικής κλάσης μέσω του τελεστή super ==== 
- 
-Λαμβάνοντας κώδικα από το προηγούμενο παράδειγμα του ποδηλάτου έχουμε τα εξής: 
- 
-<code java> 
-public class MountainBike extends Bicycle { 
-  
-    // the MountainBike subclass has 
-    // one field 
-    public int seatHeight; 
-  
-    // the MountainBike subclass has 
-    // one constructor 
-    public MountainBike(int startHeight,​ int startCadence,​ 
-                        int startSpeed, int startGear) { 
-        super(startCadence,​ startSpeed, startGear); 
-        seatHeight = startHeight;​ 
-    }    
-  
-    // the MountainBike subclass has 
-    // one method 
-    public void setHeight(int newValue) { 
-        seatHeight = newValue; 
-    }    
-  
-} 
-</​code>​ 
- 
-H χρήση του τελεστή super χρησιμοποιείται για να προσπελάσει τον κατασκευαστή της γονικής κλάσης και να αρχικοποιήσει τις μεταβλητές που ανήκουν στην κλάση αυτή. 
- 
-==== Πρόσβαση σε πεδία και μεθόδους των αντικειμένων της γονικής κλάσης μέσω του τελεστή super ==== 
- 
-<code java Bicycle.java>​ 
-    public class Bicycle { 
-      
-        // the Bicycle class has 
-        // three fields 
-        public int cadence; 
-        public int gear; 
-        public int speed; 
-      
-        // the Bicycle class has 
-        // one constructor 
-        public Bicycle(int startCadence,​ int startSpeed, int startGear) { 
-            gear = startGear; 
-            cadence = startCadence;​ 
-            speed = startSpeed; 
-        } 
-      
-        // the Bicycle class has 
-        // four methods 
-        public void setCadence(int newValue) { 
-            cadence = newValue; 
-        } 
-      
-        public void setGear(int newValue) { 
-            gear = newValue; 
-        } 
-      
-        public void applyBrake(int decrement) { 
-            speed -= decrement; 
-        } 
-      
-        public void speedUp(int increment) { 
-            speed += increment; 
-        } 
-      
-    } 
-</​code>​ 
- 
-Ο κατασκευαστής της κλάσης ''​MountainBike''​ θα μπορούσε να γραφεί ως εξής. 
- 
-<code java MountainBike.java>​ 
-public class MountainBike extends Bicycle { 
-  
-    // the MountainBike subclass has 
-    // one field 
-    public int seatHeight; 
-  
-    // the MountainBike subclass has 
-    // one constructor 
-    public MountainBike(int startHeight,​ int startCadence,​ 
-                        int startSpeed, int startGear) { 
-        super(startCadence,​ startSpeed, startGear); 
-        super.cadence = startCadence;​ 
-        super.speed = startSpeed; 
-        super.gear = startGear; 
-        seatHeight = startHeight;​ 
-    }    
-  
-    // the MountainBike subclass has 
-    // one method 
-    public void setHeight(int newValue) { 
-        seatHeight = newValue; 
-    }    
-  
-} 
-</​code>​ 
- 
-Συμπερασματικά,​ ο τελεστής **super** δείχνει στο αντικείμενο της γονικής κλάσης και χρησιμοποιείται για να προσπελαστούν δεδομένα ή μεταβλητές που ανήκουν στο τμήμα του τρέχοντος αντικειμένου που αφορά την γονική κλάση. ​ 
- 
-<WRAP important>​Απαραίτητη προϋποθεση για την χρήση του τελεστη **super** είναι τα παιδιά της γονικής κλάσης να έχουν πρόσβαση στα δεδομένα ή τις μεθόδους της γονικής κλάσης. Για να γίνει αυτό, τα πεδία και οι μέθοδοι της γονικής κλάσης που θέλουμε να προσπελάσουμε δεν θα πρέπει να έχουν των προσδιοριστή πρόσβασης **private**. Περισσότερα για τους προσδιοριστές πρόσβασης θα δούμε παρακάτω,​ όταν θα έχουμε εξήγήσει την φιλοσοφία των πακέτων στην γλώσσα JAVA. 
 </​WRAP>​ </​WRAP>​
  
 |Προηγούμενο:​ [[:​java:​this_operator | Oι τελεστές this και super ]] | Επόμενο:​ [[:​java:​static_keyword | Στατικές μεταβλητές και μέθοδοι ]]| |Προηγούμενο:​ [[:​java:​this_operator | Oι τελεστές this και super ]] | Επόμενο:​ [[:​java:​static_keyword | Στατικές μεταβλητές και μέθοδοι ]]|
  
java/this_operator.txt · Last modified: 2017/02/16 11:24 by gthanos