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 12:45] 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> | ||
Line 13: | Line 13: | ||
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 int[] color;// (an array of 3 elements | ||
- | //to store information in RGB format) | ||
| | ||
// the Rectangle class has one constructor | // the Rectangle class has one constructor | ||
- | public Rectangle(int setWidth, int setHeight, int[] setColor) { | + | public Rectangle(int initWidth, int initHeight) { |
- | width = setWidth; | + | width = initWidth; |
- | height = setHeight; | + | height = initHeight; |
- | color = setColor; | + | |
} | } | ||
- | + | ||
- | // the Rectangel class has 4 methods | + | |
public void setWidth(int newWidth ) { | public void setWidth(int newWidth ) { | ||
width = newWidth; | width = newWidth; | ||
Line 33: | Line 29: | ||
public void setHeight(int newHeight ) { | public void setHeight(int newHeight ) { | ||
height = newHeight; | height = newHeight; | ||
+ | } | ||
+ | | ||
+ | public int getWidth() { | ||
+ | return width; | ||
} | } | ||
| | ||
- | public void setColor(int[] setColor) { | + | public int getHeight() { |
- | color = setColor; | + | return height; |
} | } | ||
| | ||
- | public String toString() { | + | public int area() { |
- | return "Width: "+width+", Height: "+height+", RGB: (0x"+Integer.toHexString(color[0]) | + | return width * height; |
- | +", 0x"+Integer.toHexString(color[1])+", 0x"+Integer.toHexString(color[0])+")"; | + | } |
- | } | + | |
- | } | + | |
+ | } | ||
</code> | </code> | ||
- | Παρατηρήστε ότι η παραπάνω κλάση αποτελείται από πεδία: | + | Παρατηρήστε ότι η παραπάνω κλάση αποτελείται από τα πεδία: |
* την μεταβλητή **width** που συμβολίζει το πλάτος του παραλληλογράμμου. | * την μεταβλητή **width** που συμβολίζει το πλάτος του παραλληλογράμμου. | ||
* την μεταβλητή **height** που συμβολίζει το ύψος του παραλληλογράμμου. | * την μεταβλητή **height** που συμβολίζει το ύψος του παραλληλογράμμου. | ||
- | * την μεταβλητή **color** που είναι πίνακας τριών θέσεων και συμβολίζει το χρώμα του παραλληλογράμμου σε μορφή [[wp>RGB_color_model|RGB]]. | ||
και τις παρακάτω μεθόδους: | και τις παρακάτω μεθόδους: | ||
<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> | ||
Line 68: | 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 223: | Line 221: | ||
*/ | */ | ||
- | |Προηγούμενο: [[:java:install| Εγκατάσταση Java]] | Επόμενο: [[:java:class_fields | Τα πεδία (δεδομενα) της κλάσης]]| | + | |Προηγούμενο: [[:java:break_loop_statements | |
+ | Εντολές τερματισμού και ελέγχου της ανακύκλωσης]] | [[:toc | Περιεχόμενα]] | Επόμενο: [[:java:class_fields | Τα πεδία (δεδομένα) της κλάσης]]| | ||