User Tools

Site Tools


java:class_constructors

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_constructors [2020/02/08 16:26] gthanosjava:class_constructors [2022/02/23 10:17] (current) – external edit 127.0.0.1
Line 8: Line 8:
 Για παράδειγμα, για την κλάση **Rectangle** που δίνεται παρακάτω ο κατασκευαστής της κλάσης έχει ως εξής: Για παράδειγμα, για την κλάση **Rectangle** που δίνεται παρακάτω ο κατασκευαστής της κλάσης έχει ως εξής:
  
-<code java> +<code java Rectangle.java>
-code java Rectangle.java>+
 public class Rectangle { public class Rectangle {
   int width;   int width;
Line 31: Line 30:
 ===== Default κατασκευαστής ===== ===== Default κατασκευαστής =====
  
-Στο προηγούμενο παράδειγμα της κλάσης **Rectangle** εάν υποθέσουμε ότι αυτή δεν έχει κατασκευαστή ο //compiler// θα δημιουργήσει τον παρακάτω κατασκευαστή+Στο προηγούμενο παράδειγμα της κλάσης **Rectangle** εάν υποθέσουμε ότι αυτή δεν έχει κατασκευαστή
  
 <code java Rectangle.java> <code java Rectangle.java>
Line 38: Line 37:
   int height;   int height;
   Point origin;   Point origin;
-     + 
-  public Rectangle() { +
-  }+
 } }
 </code> </code>
  
-, ο οποίος με τη σειρά του αρχικοποιεί όλες τις τιμές σε μηδέν για τους βασικούς (//primitive//) τύπους δεδομένων και σε null για τους αναφορικούς (//reference//) τύπους δεδομένων.+Ο //compiler// θα δημιουργήσει τον παρακάτω κατασκευαστή, ο οποίος αρχικοποιεί όλες τις τιμές σε μηδέν για τους βασικούς (//primitive//) τύπους δεδομένων και σε null για τους αναφορικούς (//reference//) τύπους δεδομένων.
 <code java> <code java>
 public Rectangle() { public Rectangle() {
Line 55: Line 52:
 με βάση τους [[java:variables#Προεπιλεγμένες τιμές μεταβλητών|κανόνες αυτόματης αρχικοποίησης μεταβλητών]]. με βάση τους [[java:variables#Προεπιλεγμένες τιμές μεταβλητών|κανόνες αυτόματης αρχικοποίησης μεταβλητών]].
  
-===== Πολλαπλοί κατασκευαστές σε μία κλάση =====+===== Διαφορετικοί κατασκευαστές σε μία κλάση =====
  
 Ανάλογη με την υπερφόρτωση μεθόδων είναι και η "υπερφόρτωση" κατασκευαστών. Όπως μπορούμε να έχουμε πολλές μεθόδους με το ίδιο όνομα αλλά διαφορετικά ορίσματα, έτσι μπορούμε να έχουμε και πολλούς κατασκευαστές με διαφορετικά ορίσματα. Δείτε το παράδειγμα που ακολουθεί για την κλάση Rectangle της προηγούμενης ενότητας. Στο παράδειγμα αυτό η κλάση διαθέτει τους παρακάτω δύο κατασκευαστές Ανάλογη με την υπερφόρτωση μεθόδων είναι και η "υπερφόρτωση" κατασκευαστών. Όπως μπορούμε να έχουμε πολλές μεθόδους με το ίδιο όνομα αλλά διαφορετικά ορίσματα, έτσι μπορούμε να έχουμε και πολλούς κατασκευαστές με διαφορετικά ορίσματα. Δείτε το παράδειγμα που ακολουθεί για την κλάση Rectangle της προηγούμενης ενότητας. Στο παράδειγμα αυτό η κλάση διαθέτει τους παρακάτω δύο κατασκευαστές
Line 102: Line 99:
   int getHeight() {   int getHeight() {
     return height;     return height;
 +  }
 +  
 +  Point getOrigin() {
 +    return origin;
   }   }
      
Line 108: Line 109:
   }   }
      
-  Point getOrigin() { +  void setOrigin(int newX, int newY) { 
-    return origin; +    origin.setX(newX); 
-  }   +    origin.setY(newY)
 +  } 
 +    
 } }
 </code> </code>
java/class_constructors.1581179194.txt.gz · Last modified: 2020/02/08 16:26 by gthanos