java:class

Η Κλάση

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

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

Για τις ανάγκες του παρόντος κεφαλαίου θα ορίσουμε την κλάση Rectangle που απεικονίζει ένα ορθογώνιο παραλληλόγραμμο. Παρακάτω ορίζουμε την κλάση αυτή με χρήση δύο παραμέτρων, το πλάτος και το ύψος του ορθογωνίου.

Rectangle.java
class Rectangle {
 
  int width;
  int height;
 
  public Rectangle(int initWidth, int initHeight) {
    width = initWidth;
    height = initHeight;
  }
 
  void setWidth(int newWidth ) {
    width = newWidth;
  }
 
  void setHeight(int newHeight ) {
    height = newHeight;
  }
 
  int getWidth() {
    return width;
  }
 
  int getHeight() {
    return height;
  }
 
  int area() {
    return width * height;
  }
 
}

Παρατηρήστε ότι η παραπάνω κλάση αποτελείται από τα πεδία:

  • την μεταβλητή width που συμβολίζει το πλάτος του παραλληλογράμμου.
  • την μεταβλητή height που συμβολίζει το ύψος του παραλληλογράμμου.

και τις παρακάτω μεθόδους:

  void setWidth(int newWidth );
  void setHeight(int newHeight );
  int getWidth();
  int getHeight();
  int area();

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

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

public Rectangle(int setWidth, int setHeight);

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

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

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

Κάθε κλάση έχει τουλάχιστον ένα κατασκευαστή (μπορεί να έχει και περισσότερους). Εάν δεν έχει οριστεί κατασκευαστής σε μία κλάση o compiler της java ορίζει αυτόματα ένα κατασκευαστή χωρίς τυπικές παραμέτρους και χωρίς εντολές μέσα στο κυρίως σώμα. Ο κατασκευαστής αυτός ονομάζεται προκαθορισμένος ή βασικός κατασκευαστής της κλάσης (default constructor). Ο βασικός κατασκευαστής αρχικοποιεί όλα τα πεδία των αντικειμένων σε 0 (για πεδία βασικού τύπου) ή σε nulll (για πεδία αναφορικού τύπου).

Για την παραπάνω κλάση Rectangle ο βασικός κατασκευαστής είναι ισοδύναμος με τον να γράψετε τον παρακάτω κώδικα:

public Rectangle() {
}
java/class.txt · Last modified: 2020/02/20 14:24 by gthanos