Ο ορισμός οποιασδήποτε μεθόδου στη Java περιέχει τα εξής πεδία
<πρ. πρόσβασης> <επιστ. τύπος> <όνομα> (<λίστα περαμέτρων>) Exceptions {…..}
Ισχύει και εδώ ο “κανόνας” ότι τα ονόματα ξεκινούν με μικρό γράμμα και εάν πρόκειται για ονόματα με περισσότερες από μία λέξεις αυτές χωρίζονται με κεφαλαία γράμματα. Η πρώτη λέξη κάθε μεθόδου συνιστάται να είναι ρήμα. Μερικά παραδείγματα μπορείτε να δείτε παρακάτω:
Με βάση παράδειγμα της προηγούμενης ενότητας για την κλάση 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 της κλάσης.
Επιπλέον, βασικό χαρακτηριστικό του Αντικειμενοστραφούς Προγραμματισμού είναι η υπερφόρτωση των μεθόδων. Με τον όρο υπερφόρτωση εννοούμε την δυνατότητα που μας δίνει ο Αντικειμενοστραφής Προγραμματισμός να ορίσουμε σε μία κλάση δύο μεθόδους με το ίδιο όνομα αλλά διαφορετικά ορίσματα. Τα ορίσματα μπορούν να διαφέρουν
Δεν αποτελεί ορθή προγραμματιστική πρακτική να έχετε μεθόδους με τον ίδιο αριθμό και τον ίδιο τύπο ορισμάτων, τα οποία όμως είναι διατεταγμένα με διαφορετική σειρά. Aν και ο compiler της Java αντιλαμβάνεται τη διαφορά, ο κώδικας καταλήγει να είναι δυσανάγνωστος και να περιέχει πιθανά λογικά σφάλματα.
Στο προηγούμενο παράδειγμα, έχουμε τις εξής δύο εκδόσεις της μεθόδου setOrigin:
void setOrigin(Point newOrigin) { origin = newOrigin; } void setOrigin(int newX, int newY) { origin.setX(newX); origin.setY(newY); }
Παρατηρήστε ότι έχουμε δύο μεθόδους με το ίδιο όνομα, οι οποίες διαφοροποιούνται ως προς τον αριθμό και το είδος των ορισμάτων τους. Ποια έκδοση χρησιμοποιείται σε κάθε κλήση της μεθόδου, αποφασίζεται από τον compiler με βάση το είδος και τον αριθμό των ορισμάτων.
Προηγούμενο: Τα πεδία της κλάσης | Περιεχόμενα | Επόμενο: Κατασκευαστές της κλάσης |