User Tools

Site Tools


java:class_methods

Μέθοδοι της Κλάσης

Ο ορισμός οποιασδήποτε μεθόδου στη Java περιέχει τα εξής πεδία

<πρ. πρόσβασης> <επιστ. τύπος> <όνομα> (<λίστα περαμέτρων>) Exceptions {…..}

  1. Προσδιοριστές πρόσβασης, όπως public ή private.
  2. Τον τύπο της επιστρεφόμενης τιμής ή void εάν η μέθοδος δεν επιστρέφει κάτι.
  3. Το όνομα της μεθόδου.
  4. H λίστα των παραμέτρων μέσα σε παρένθεση, χωρισμένες με κόμμα. Κάθε παράμετρος εκτός από το όνομά της οφείλει να διαθέτει και τον τύπο της, π.χ. int speed ή double latitude. Εάν δεν υπάρχουν παράμετροι το περιεχόμενο των παρενθέσεων είναι κενό.
  5. Μία σειρά από Exceptions (θα συζητηθούν αργότερα).
  6. Το κυρίως σώμα της μεθόδου, το οποίο περιέχεται μέσα σε αγκύλες {}.

Κανόνες ονοματολογίας

Ισχύει και εδώ ο “κανόνας” ότι τα ονόματα ξεκινούν με μικρό γράμμα και εάν πρόκειται για ονόματα με περισσότερες από μία λέξεις αυτές χωρίζονται με κεφαλαία γράμματα. Η πρώτη λέξη κάθε μεθόδου συνιστάται να είναι ρήμα. Μερικά παραδείγματα μπορείτε να δείτε παρακάτω:

  1. run
  2. runFast
  3. getBackground
  4. getFinalData
  5. compareTo
  6. setLatitude
  7. isEmpty

Παραδείγματα μεθόδων

Με βάση παράδειγμα της προηγούμενης ενότητας για την κλάση Rectangle που αναπαριστά ένα ορθογώνιο παραλληλόγραμμο.

class Rectangle {
 
  // the Rectangle class has 3 fields
  int width;
  int height;
  Point origin;
 
  // the Rectangle class has one constructor
  public Rectangle(int initWidth, int initHeight, Point initOrigin) {
    width = initWidth;
    height = initHeight;
    origin = initOrigin;
  }
 
  void setWidth(int newWidth ) {
    width = newWidth;
  }
 
  void setHeight(int newHeight ) {
    height = newHeight;
  }
 
  Point getOrigin() {
    return origin;
  }
 
  void setOrigin(int newX, int newY) {
    origin.setX(newX);
    origin.setY(newY);
  } 
 
  void setOrigin(Point newOrigin) {
    origin = newOrigin;
  }
 
}

Βασικό χαρακτηριστικό του Αντικειμενοστραφούς Προγραμματισμού είναι ότι οι μέθοδοι της κλάσης έχουν απευθείας πρόσβαση στα πεδία της κλάσης. Στο παραπάνω παράδειγμα, οι μέθοδοι setWidth και getWidth έχουν απευθείας πρόσβαση στο πεδίο width της κλάσης και οι μέθοδοι setHeight και getHeight έχουν απευθείας πρόσβασης στο πεδιό height της κλάσης.

Υπερφόρτωση (overloading) των μεθόδων μίας κλάσης

Επιπλέον, βασικό χαρακτηριστικό του Αντικειμενοστραφούς Προγραμματισμού είναι η υπερφόρτωση των μεθόδων. Με τον όρο υπερφόρτωση εννοούμε την δυνατότητα που μας δίνει ο Αντικειμενοστραφής Προγραμματισμός να ορίσουμε σε μία κλάση δύο μεθόδους με το ίδιο όνομα αλλά διαφορετικά ορίσματα. Τα ορίσματα μπορούν να διαφέρουν

  1. ως προς τον τύπο τους
  2. ως προς τον αριθμό τους και
  3. ως προς την σειρά τους

Δεν αποτελεί ορθή προγραμματιστική πρακτική να έχετε μεθόδους με τον ίδιο αριθμό και τον ίδιο τύπο ορισμάτων, τα οποία όμως είναι διατεταγμένα με διαφορετική σειρά. Aν και ο compiler της Java αντιλαμβάνεται τη διαφορά, ο κώδικας καταλήγει να είναι δυσανάγνωστος και να περιέχει πιθανά λογικά σφάλματα.

Στο προηγούμενο παράδειγμα, έχουμε τις εξής δύο εκδόσεις της μεθόδου setOrigin:

  void setOrigin(Point newOrigin) {
    origin = newOrigin;
  }
 
  void setOrigin(int newX, int newY) {
    origin.setX(newX);
    origin.setY(newY);
  }

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

java/class_methods.txt · Last modified: 2022/02/23 10:00 by gthanos