This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
java:this_operator [2015/01/22 09:14] gthanos [Πρόσβαση σε πεδία και μεθόδους των αντικειμένων της γονικής κλάσης μέσω του τελεστή super] |
java:this_operator [2015/02/05 10:41] gthanos |
||
---|---|---|---|
Line 97: | Line 97: | ||
Λαμβάνοντας κώδικα από το προηγούμενο παράδειγμα του ποδηλάτου έχουμε τα εξής: | Λαμβάνοντας κώδικα από το προηγούμενο παράδειγμα του ποδηλάτου έχουμε τα εξής: | ||
- | |||
- | <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> | <code java Bicycle.java> | ||
Line 163: | Line 135: | ||
} | } | ||
</code> | </code> | ||
+ | |||
+ | <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); | ||
+ | seatHeight = startHeight; | ||
+ | } | ||
+ | |||
+ | // the MountainBike subclass has | ||
+ | // one method | ||
+ | public void setHeight(int newValue) { | ||
+ | seatHeight = newValue; | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </code> | ||
+ | |||
+ | H χρήση του τελεστή super χρησιμοποιείται για να προσπελάσει τον κατασκευαστή της γονικής κλάσης και να αρχικοποιήσει τις μεταβλητές που ανήκουν στην κλάση αυτή. | ||
+ | |||
+ | ==== Πρόσβαση σε πεδία και μεθόδους των αντικειμένων της γονικής κλάσης μέσω του τελεστή super ==== | ||
Ο κατασκευαστής της κλάσης ''MountainBike'' θα μπορούσε να γραφεί ως εξής. | Ο κατασκευαστής της κλάσης ''MountainBike'' θα μπορούσε να γραφεί ως εξής. | ||
Line 193: | Line 193: | ||
</code> | </code> | ||
+ | Συμπερασματικά, ο τελεστής **super** δείχνει στο αντικείμενο της γονικής κλάσης και χρησιμοποιείται για να προσπελαστούν δεδομένα ή μεταβλητές που ανήκουν στο τμήμα του τρέχοντος αντικειμένου που αφορά την γονική κλάση. | ||
+ | |||
+ | <WRAP important>Απαραίτητη προϋποθεση για την χρήση του τελεστη **super** είναι τα παιδιά της γονικής κλάσης να έχουν πρόσβαση στα δεδομένα ή τις μεθόδους της γονικής κλάσης. Για να γίνει αυτό, τα πεδία και οι μέθοδοι της γονικής κλάσης που θέλουμε να προσπελάσουμε δεν θα πρέπει να έχουν των προσδιοριστή πρόσβασης **private**. Περισσότερα για τους προσδιοριστές πρόσβασης θα δούμε παρακάτω, όταν θα έχουμε εξήγήσει την φιλοσοφία των πακέτων στην γλώσσα JAVA. | ||
+ | </WRAP> | ||
+ | |Προηγούμενο: [[:java:this_operator | Oι τελεστές this και super ]] | Επόμενο: [[:java:static_keyword | Στατικές μεταβλητές και μέθοδοι ]]| | ||