java:class

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:class [2016/01/22 13:24]
gthanos
java:class [2017/02/16 09:18]
gthanos
Line 1: Line 1:
 ====== Η Κλάση ====== ====== Η Κλάση ======
  
-Στην ​[[:​oop:​introduction|Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό]] ​είδαμε την σχέση μεταξύ κλάσης και αντικειμένων. Εδώ θα δούμε πως ορίζουμε μία κλάση και θα ορίσουμε την πρώτη μας κλάση. Στην πιο απλή περίπτωση κάθε κλάση περιέχει ​τα εξής:+Στην ​προηγούμενη ενότητα είδαμε την σχέση μεταξύ κλάσης και αντικειμένων. Εδώ θα δούμε πως ορίζουμε μία κλάση και θα ορίσουμε την πρώτη μας κλάση. Στην πιο απλή περίπτωση κάθε κλάση περιέχει:​
  
   - **δεδομένα ή πεδία (fields)**   - **δεδομένα ή πεδία (fields)**
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 fields+  // the Rectangle class has 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 Rectangle(int setWidth, int setHeight, int[] setColor);+public Rectangle(int setWidth, int setHeight);
 </​code>​ </​code>​
  
-Η "​ειδική"​ αυτή μέθοδος αποτελεί τον κατασκευαστή της κλάσης. Ο κατασκευαστής της κλάσης έχει τις εξής ​δύο ​αρμοδιότητες:​+Η "​ειδική"​ αυτή μέθοδος αποτελεί τον κατασκευαστή της κλάσης. Ο κατασκευαστής της κλάσης έχει τις εξής ​ αρμοδιότητες:​
   - Δεσμεύει την απαραίτητη μνήμη για την αποθήκευση του αντικειμένου που δημιουργείται.   - Δεσμεύει την απαραίτητη μνήμη για την αποθήκευση του αντικειμένου που δημιουργείται.
   - Αρχικοποιεί τα δεδομένα ενός αντικειμένου,​ εφόσον διαθέτει τυπικές παραμέτρους και σώμα (σώμα μιας μεθόδου εννοούμε το τμήμα του κώδικα μέσα στις αγκύλες **{}** ).   - Αρχικοποιεί τα δεδομένα ενός αντικειμένου,​ εφόσον διαθέτει τυπικές παραμέτρους και σώμα (σώμα μιας μεθόδου εννοούμε το τμήμα του κώδικα μέσα στις αγκύλες **{}** ).
Line 79: Line 77:
 Η κάθε κλήση του κατασκευαστή της κλάσης δημιουργεί και επιστρέφει ένα αντικείμενο σε κάθε κλήση του. Η κάθε κλήση του κατασκευαστή της κλάσης δημιουργεί και επιστρέφει ένα αντικείμενο σε κάθε κλήση του.
  
-Κάθε κλάση έχει τουλάχιστον ένα κατασκευαστή (**//​μπορεί να έχει και περισσότερους//​**).__Εάν δεν έχει οριστεί κατασκευαστής σε μία κλάση __o compiler ορίζει ένα κατασκευαστή χωρίς τυπικές παραμέτρους και χωρίς εντολές μέσα στο κυρίως σώμα. Ο κατασκευαστής αυτός ονομάζεται **βασικός κατασκευαστής της κλάσης** (default constructor) Για την παραπάνω κλάση ​Bicycle ​ο βασικός κατασκευαστής θα ήταν o εξής:+Κάθε κλάση έχει τουλάχιστον ένα κατασκευαστή (**//​μπορεί να έχει και περισσότερους//​**).__Εάν δεν έχει οριστεί κατασκευαστής σε μία κλάση __o compiler ορίζει ένα κατασκευαστή χωρίς τυπικές παραμέτρους και χωρίς εντολές μέσα στο κυρίως σώμα. Ο κατασκευαστής αυτός ονομάζεται **βασικός κατασκευαστής της κλάσης** (default constructor) Για την παραπάνω κλάση ​Rectangle ​ο βασικός κατασκευαστής θα ήταν o εξής:
  
 <code java> <code java>
Line 223: Line 221:
 */ */
  
-|Προηγούμενο:​ [[:java:install| Εγκατάσταση ​Java]] | Επόμενο:​ [[:​java:​class_fields | Τα πεδία (δεδομενα) της κλάσης]]|+|Προηγούμενο:​ [[:java:break_loop_statements ​ 
 +Εντολές τερματισμού και ελέγχου ​της ανακύκλωσης]] | [[:toc | Περιεχόμενα]] | Επόμενο:​ [[:​java:​class_fields | Τα πεδία (δεδομένα) της κλάσης]]|
  
java/class.txt · Last modified: 2020/02/20 14:24 by gthanos