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:class [2016/01/22 11:59] gthanos |
java:class [2016/03/04 17:45] doufexi |
||
---|---|---|---|
Line 7: | Line 7: | ||
- **μεθόδους (methods)** | - **μεθόδους (methods)** | ||
- | Για τις ανάγκες του παρόντος κεφαλαίου θα ορίσουμε την κλάση **Rectangle** που απεικονίζει ένα ορθογώνιο παραλληλόγραμμο. Παρακάτω ορίζουμε την κλάση αυτή. | + | Για τις ανάγκες του παρόντος κεφαλαίου θα ορίσουμε την κλάση **Rectangle** που απεικονίζει ένα ορθογώνιο παραλληλόγραμμο. Παρακάτω ορίζουμε την κλάση αυτή με χρήση δύο παραμέτρων, το πλάτος και το ύψος του ορθογωνίου. |
<code java Rectangle.java> | <code java Rectangle.java> | ||
+ | |||
public class Rectangle { | public class Rectangle { | ||
- | | + | |
- | // the Rectangle class has 3 fields | + | // the Rectangle class has 2 fields |
- | public int width; | + | public int width; |
- | public int height; | + | public int height; |
- | public byte[3] color; (in rgb format) | + | |
- | + | // the Rectangle class has one constructor | |
- | // the Rectangle class has one constructor | + | public Rectangle(int initWidth, int initHeight) { |
- | public Rectangle(int setWidth, int setHeight, int[3] setColor) { | + | width = initWidth; |
- | gear = startGear; | + | height = initHeight; |
- | cadence = startCadence; | + | } |
- | speed = startSpeed; | + | |
- | } | + | public void setWidth(int newWidth ) { |
- | | + | width = newWidth; |
- | // the Bicycle class has | + | } |
- | // four methods | + | |
- | public void setCadence(int newValue) { | + | public void setHeight(int newHeight ) { |
- | cadence = newValue; | + | height = newHeight; |
- | } | + | } |
- | + | ||
- | public void setGear(int newValue) { | + | public int getWidth() { |
- | gear = newValue; | + | return width; |
- | } | + | } |
- | + | ||
- | public void applyBrake(int decrement) { | + | public int getHeight() { |
- | speed -= decrement; | + | return height; |
- | } | + | } |
- | + | ||
- | public void speedUp(int increment) { | + | public int area() { |
- | speed += increment; | + | return width * height; |
- | } | + | } |
- | + | ||
} | } | ||
</code> | </code> | ||
- | Παρατηρήστε ότι η παραπάνω κλάση αποτελείται από δεδομένα (τις μεταβλητές ''cadence'', ''gear'', ''speed'') και τις παρακάτω μεθόδους. | + | Παρατηρήστε ότι η παραπάνω κλάση αποτελείται από τα πεδία: |
+ | * την μεταβλητή **width** που συμβολίζει το πλάτος του παραλληλογράμμου. | ||
+ | * την μεταβλητή **height** που συμβολίζει το ύψος του παραλληλογράμμου. | ||
+ | |||
+ | και τις παρακάτω μεθόδους: | ||
<code java> | <code java> | ||
- | public void setCadence(int newValue); | + | public void setWidth(int newWidth ); |
- | public void setGear(int newValue); | + | public void setHeight(int newHeight ); |
- | public void setGear(int newValue); | + | public int getWidth(); |
- | public void applyBrake(int decrement); | + | public int getHeight(); |
- | public void speedUp(int increment); | + | public int area(); |
</code> | </code> | ||
- | Προς το παρόν αγνοήστε τον προσδιοριστεί **public**, το οποίο θα εξετάσουμε στην συνέχεια. | + | Προς το παρόν αγνοήστε τον προσδιοριστή **public** μπροστά από τα πεδία και τις μεθόδους, τον οποίο θα εξετάσουμε στην συνέχεια. |
===== Ο κατασκευαστής της κλάσης ===== | ===== Ο κατασκευαστής της κλάσης ===== | ||
Line 61: | Line 66: | ||
<code java> | <code java> | ||
- | public Bicycle(int startCadence, int startSpeed, int startGear); | + | public Rectangle(int setWidth, int setHeight); |
</code> | </code> | ||
- | Η "ειδική" αυτή μέθοδος αποτελεί τον κατασκευαστή της κλάσης. Ο κατασκευαστής της κλάσης έχει τις εξής δύο αρμοδιότητες: | + | Η "ειδική" αυτή μέθοδος αποτελεί τον κατασκευαστή της κλάσης. Ο κατασκευαστής της κλάσης έχει τις εξής αρμοδιότητες: |
- Δεσμεύει την απαραίτητη μνήμη για την αποθήκευση του αντικειμένου που δημιουργείται. | - Δεσμεύει την απαραίτητη μνήμη για την αποθήκευση του αντικειμένου που δημιουργείται. | ||
- Αρχικοποιεί τα δεδομένα ενός αντικειμένου, εφόσον διαθέτει τυπικές παραμέτρους και σώμα (σώμα μιας μεθόδου εννοούμε το τμήμα του κώδικα μέσα στις αγκύλες **{}** ). | - Αρχικοποιεί τα δεδομένα ενός αντικειμένου, εφόσον διαθέτει τυπικές παραμέτρους και σώμα (σώμα μιας μεθόδου εννοούμε το τμήμα του κώδικα μέσα στις αγκύλες **{}** ). | ||
- | - Επιστρέφει ένα δείκτη στην αρχή της περιοχής που έχει δημιουργηθεί το νέο αντικείμενο της κλάσης. Υπό αυτή την έννοια, η μεταβλητή του κάθε αντικειμένου είναι ένας δείκτης (αναφορά) που δείχνει στο νέο αντικείμενο και όχι το αντικείμενο καθ' αυτό. | + | - Επιστρέφει ένα δείκτη στην αρχή της περιοχής που έχει δημιουργηθεί το νέο αντικείμενο της κλάσης. Υπό αυτή την έννοια, η μεταβλητή του κάθε αντικειμένου είναι ένας δείκτης (αναφορά) που δείχνει στο νέο αντικείμενο. |
<WRAP tip 80% center round> | <WRAP tip 80% center round> | ||
Η κάθε κλήση του κατασκευαστή της κλάσης δημιουργεί και επιστρέφει ένα αντικείμενο σε κάθε κλήση του. | Η κάθε κλήση του κατασκευαστή της κλάσης δημιουργεί και επιστρέφει ένα αντικείμενο σε κάθε κλήση του. | ||
- | Κάθε κλάση έχει τουλάχιστον ένα κατασκευαστή (**//μπορεί να έχει και περισσότερους//**).__Εάν δεν έχει οριστεί κατασκευαστής σε μία κλάση__ o compiler ορίζει ένα κατασκευαστή χωρίς τυπικές παραμέτρους και χωρίς εντολές μέσα στο κυρίως σώμα. Για την παραπάνω κλάση Bicycle ο default κατασκευαστής θα ήταν o εξής: | + | Κάθε κλάση έχει τουλάχιστον ένα κατασκευαστή (**//μπορεί να έχει και περισσότερους//**).__Εάν δεν έχει οριστεί κατασκευαστής σε μία κλάση __o compiler ορίζει ένα κατασκευαστή χωρίς τυπικές παραμέτρους και χωρίς εντολές μέσα στο κυρίως σώμα. Ο κατασκευαστής αυτός ονομάζεται **βασικός κατασκευαστής της κλάσης** (default constructor) Για την παραπάνω κλάση Rectangle ο βασικός κατασκευαστής θα ήταν o εξής: |
<code java> | <code java> | ||
- | public Bicycle() { | + | public Rectangle() { |
} | } | ||
</code> | </code> | ||
Line 216: | Line 221: | ||
*/ | */ | ||
- | |Προηγούμενο: [[:java:install| Εγκατάσταση Java]] | Επόμενο: [[:java:class_fields | Τα πεδία (δεδομενα) της κλάσης]]| | + | |Προηγούμενο: [[:java:break_loop_statements | |
+ | Εντολές τερματισμού και ελέγχου της ανακύκλωσης]] | [[:toc | Περιεχόμενα]] | Επόμενο: [[:java:class_fields | Τα πεδία (δεδομένα) της κλάσης]]| | ||