User Tools

Site Tools


java:class

This is an old revision of the document!


Η Κλάση

Στην Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό είδαμε την σχέση μεταξύ κλάσης και αντικειμένων. Εδώ θα δούμε πως ορίζουμε μία κλάση και θα ορίσουμε την πρώτη μας κλάση. Στην πιο απλή περίπτωση κάθε κλάση περιέχει τα εξής:

  1. δεδομένα ή πεδία (fields)
  2. κατασκευαστές (constructors)
  3. μεθόδους (methods)

Σε προηγούμενα παραδείγματα χρησιμοποιήσαμε την κλάση του ποδηλάτου Bicycle. Παρακάτω ορίζουμε την κλάση αυτή.

Bicycle.java
public class Bicycle {
 
    // the Bicycle class has
    // three fields
    public int cadence;
    public int gear;
    public int speed;
 
    // the Bicycle class has
    // one constructor
    public Bicycle(int startCadence, int startSpeed, int startGear) {
        gear = startGear;
        cadence = startCadence;
        speed = startSpeed;
    }
 
    // the Bicycle class has
    // four methods
    public void setCadence(int newValue) {
        cadence = newValue;
    }
 
    public void setGear(int newValue) {
        gear = newValue;
    }
 
    public void applyBrake(int decrement) {
        speed -= decrement;
    }
 
    public void speedUp(int increment) {
        speed += increment;
    }
 
}

Παρατηρήστε ότι η παραπάνω κλάση αποτελείται από δεδομένα (τις μεταβλητές cadence, gear, speed) και τις παρακάτω μεθόδους.

public void setCadence(int newValue);
public void setGear(int newValue);
public void setGear(int newValue);
public void applyBrake(int decrement);
public void speedUp(int increment);

Προς το παρόν αγνοήστε τον προσδιοριστεί public, το οποίο θα εξετάσουμε στην συνέχεια.

Ο κατασκευαστής της κλάσης

Εκτός από τις παραπάνω μεθόδους η κλάση διαθέτει μία “ειδική” μέθοδο που έχει το όνομα της κλάσης και δεν διαθέτει επιστρεφόμενο τύπο, όπως παρακάτω:

public Bicycle(int startCadence, int startSpeed, int startGear);

Η “ειδική” αυτή μέθοδος αποτελεί τον κατασκευαστή της κλάσης. Ο κατασκευαστής της κλάσης έχει τις εξής δύο αρμοδιότητες:

  1. Δεσμεύει την απαραίτητη μνήμη για την αποθήκευση του αντικειμένου που δημιουργείται.
  2. Αρχικοποιεί τα δεδομένα ενός αντικειμένου, εφόσον διαθέτει τυπικές παραμέτρους και σώμα (σώμα μιας μεθόδου εννοούμε το τμήμα του κώδικα μέσα στις αγκύλες {} ).
  3. Επιστρέφει ένα δείκτη στην αρχή της περιοχής που έχει δημιουργηθεί το νέο αντικείμενο της κλάσης. Υπό αυτή την έννοια, η μεταβλητή του κάθε αντικειμένου είναι ένας δείκτης (αναφορά) που δείχνει στο νέο αντικείμενο και όχι το αντικείμενο καθ' αυτό.

Η κάθε κλήση του κατασκευαστή της κλάσης δημιουργεί και επιστρέφει ένα αντικείμενο σε κάθε κλήση του.

Κάθε κλάση έχει τουλάχιστον ένα κατασκευαστή (μπορεί να έχει και περισσότερους).Εάν δεν έχει οριστεί κατασκευαστής σε μία κλάση o compiler ορίζει ένα κατασκευαστή χωρίς τυπικές παραμέτρους και χωρίς εντολές μέσα στο κυρίως σώμα. Για την παραπάνω κλάση Bicycle ο default κατασκευαστής θα ήταν o εξής:

public Bicycle() {
}
java/class.1442575387.txt.gz · Last modified: 2015/09/18 10:23 (external edit)