User Tools

Site Tools


java:class

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
java:class [2017/01/27 14:57] – [Ο κατασκευαστής της κλάσης] gthanosjava:class [2022/02/22 15:38] (current) gthanos
Line 11: Line 11:
 <code java Rectangle.java> <code java Rectangle.java>
  
-public class Rectangle {+class Rectangle {
          
-  // the Rectangle class has 3 fields +  int width; 
-  public int width; +  int height; 
-  public int height; + 
-     +
-  // the Rectangle class has one constructor+
   public Rectangle(int initWidth, int initHeight) {   public Rectangle(int initWidth, int initHeight) {
     width = initWidth;     width = initWidth;
Line 23: Line 21:
   }   }
  
-  public void setWidth(int newWidth ) {+  void setWidth(int newWidth ) {
     width = newWidth;     width = newWidth;
   }   }
          
-  public void setHeight(int newHeight ) {+  void setHeight(int newHeight ) {
     height = newHeight;     height = newHeight;
   }   }
      
-  public int getWidth() {+  int getWidth() {
     return width;     return width;
   }   }
          
-  public int getHeight() {+  int getHeight() {
     return height;     return height;
   }   }
      
-  public int area() {+  int area() {
     return width * height;     return width * height;
   }   }
Line 47: Line 45:
  
 Παρατηρήστε ότι η παραπάνω κλάση αποτελείται από τα πεδία:  Παρατηρήστε ότι η παραπάνω κλάση αποτελείται από τα πεδία: 
-  * την μεταβλητή **width** που συμβολίζει το πλάτος του παραλληλογράμμου. +  * την ακέραια μεταβλητή **width** που συμβολίζει το πλάτος του παραλληλογράμμου. 
-  * την μεταβλητή **height** που συμβολίζει το ύψος του παραλληλογράμμου.+  * την ακέραια μεταβλητή **height** που συμβολίζει το ύψος του παραλληλογράμμου.
  
 και τις παρακάτω μεθόδους: και τις παρακάτω μεθόδους:
 <code java> <code java>
-  public void setWidth(int newWidth ); +  void setWidth(int newWidth ); 
-  public void setHeight(int newHeight ); +  void setHeight(int newHeight ); 
-  public int getWidth(); +  int getWidth(); 
-  public int getHeight(); +  int getHeight(); 
-  public int area();+  int area();
 </code> </code>
  
-Προς το παρόν αγνοήστε τον προσδιοριστή **public** μπροστά από τα πεδία και τις μεθόδους, τον οποίο θα εξετάσουμε στην συνέχεια. +=== Ο κατασκευαστής της κλάσης ===
- +
-===== Ο κατασκευαστής της κλάσης =====+
  
 Εκτός από τις παραπάνω μεθόδους η κλάση διαθέτει μία "ειδική" μέθοδο που έχει το όνομα της κλάσης και δεν διαθέτει επιστρεφόμενο τύπο, όπως παρακάτω: Εκτός από τις παραπάνω μεθόδους η κλάση διαθέτει μία "ειδική" μέθοδο που έχει το όνομα της κλάσης και δεν διαθέτει επιστρεφόμενο τύπο, όπως παρακάτω:
Line 77: Line 73:
 Κάθε κλήση του κατασκευαστή της κλάσης δημιουργεί και επιστρέφει ένα νέο αντικείμενο. Κάθε κλήση του κατασκευαστή της κλάσης δημιουργεί και επιστρέφει ένα νέο αντικείμενο.
  
-Κάθε κλάση έχει τουλάχιστον ένα κατασκευαστή (**//μπορεί να έχει και περισσότερους//**).__Εάν δεν έχει οριστεί κατασκευαστής σε μία κλάση __o compiler της java ορίζει αυτόματα ένα κατασκευαστή χωρίς τυπικές παραμέτρους και χωρίς εντολές μέσα στο κυρίως σώμα. Ο κατασκευαστής αυτός ονομάζεται **βασικός κατασκευαστής της κλάσης** (default constructor). Για την παραπάνω κλάση Rectangle ο βασικός κατασκευαστής είναι o εξής:+Κάθε κλάση έχει τουλάχιστον ένα κατασκευαστή (**//μπορεί να έχει και περισσότερους//**). __Εάν δεν έχει οριστεί κατασκευαστής σε μία κλάση __o compiler της java ορίζει αυτόματα ένα κατασκευαστή χωρίς τυπικές παραμέτρους και χωρίς εντολές μέσα στο σώμα του. Ο κατασκευαστής αυτός ονομάζεται **προκαθορισμένος ή βασικός κατασκευαστής** της κλάσης (//default constructor//). Ο βασικός κατασκευαστής αρχικοποιεί όλα τα πεδία των αντικειμένων σε **0** (για πεδία βασικού τύπου) ή σε **nulll** (για πεδία αναφορικού τύπου). 
 + 
 +Για την παραπάνω κλάση Rectangle ο βασικός κατασκευαστής είναι ισοδύναμος με τον να γράψετε τον παρακάτω κώδικα:
  
 <code java> <code java>
Line 86: Line 84:
  
 |Προηγούμενο: [[:oop:introduction |  |Προηγούμενο: [[:oop:introduction | 
-Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό ]] | [[:toc | Περιεχόμενα]] | Επόμενο: [[:java:class_fields | Τα πεδία (δεδομένα) της κλάσης]]|+Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό ]] | [[:toc | Περιεχόμενα]] | Επόμενο: [[:java:class_fields | Τα πεδία της κλάσης]]|
  
java/class.1485529054.txt.gz · Last modified: 2017/01/27 14:57 by gthanos