java:class_constructors
This is an old revision of the document!
Table of Contents
Κατασκευαστές της κλάσης
Οι κατασκευαστές μιας κλάσης είναι ειδικές μέθοδοι που δεν έχουν επιστρεφόμενο τύπο και το όνομα τους ταυτίζεται με το όνομα της κλάσης. Για παράδειγμα, για την κλάση Rectangle που δίνεται παρακάτω ο κατασκευαστής της κλάσης έχει ως εξής:
code java Rectangle.java> public class Rectangle { int width; int height; Point origin; public Rectangle(int initWidth, int initHeight, Point initOrigin) { width = initWidth; height = initHeight; origin = initOrigin; } }
Υπερφόρτωση κατασκευαστών
Ανάλογη με την υπερφόρτωση μεθόδων είναι και η υπερφόρτωση κατασκευαστών. Όπως μπορούμε να έχουμε πολλές μεθόδους με το ίδιο όνομα αλλά διαφορετικά ορίσματα, έτσι μπορούμε να έχουμε και πολλούς κατασκευαστές με διαφορετικά ορίσματα. Δείτε το παράδειγμα που ακολουθεί για την κλάση Rectangle της προηγούμενης ενότητας. Στο παράδειγμα αυτό η κλάση διαθέτει τους παρακάτω δύο κατασκευαστές
public Rectangle(int initWidth, int initHeight, Point initOrigin); public Rectangle(int initWidth, int initHeight, int xPos, int yPos);
- Rectangle.java
public class Rectangle { // the Rectangle class has 3 fields private int width; private int height; private Point origin; // the Rectangle class has two constructors public Rectangle(int initWidth, int initHeight, Point initOrigin) { width = initWidth; height = initHeight; origin = initOrigin; } public Rectangle(int initWidth, int initHeight, int xPos, int yPos) { width = initWidth; height = initHeight; origin = new Point(xPos,yPos); } // the Rectangel class has 3 methods public void setWidth(int newWidth ) { width = newWidth; } public int getWidth() { return width; } public void setHeight(int newHeight ) { height = newHeight; } public int getHeight() { return height; } public void setOrigin(Point newOrigin) { origin = newOrigin; } public Point getOrigin() { return origin; } }
Προηγούμενο: Τα πεδία της κλάσης | Περιεχόμενα | Επόμενο: Δημιουργία Αντικειμένων |
java/class_constructors.1487237427.txt.gz · Last modified: 2017/02/16 09:30 (external edit)