java:class_methods

This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

====== Μέθοδοι της Κλάσης ====== Προηγουμένως συναντήσαμε ορισμούς μεθόδων. Γενικά, κατά τον ορισμό μίας μεθόδου μπορούμε να έχουμε τα εξής: - Προσδιοριστές τύπου, όπως **public**, **private**, **protected** (θα τον συναντήσουμε στην συνέχεια). - Τον τύπο της επιστρεφόμενης τιμής ή void εάν η μέθοδος δεν επιστρέφει κάτι. - Το όνομα της μεθόδου. Ισχύει και εδώ ο "κανόνας" ότι τα ονομάτα ξεκινούν με μικρό γράμμα και εάν πρόκειται για ονόματα με περισσότερες από μία λέξεις αυτές χωρίζονται με κεφαλαία γράμματα. Η πρώτη λέξη κάθε μεθόδου θα πρέπει να είναι ρήμα. Μερικά παραδείγματα μπορείτε να δείτε παρακάτω: - run - runFast - getBackground - getFinalData - compareTo - setLatitude - isEmpty - H λίστα των παραμέτρων μέσα σε παρένθεση, χωρισμένες με κόμμα. Κάθε παράμετρος εκτός από τον τύπο της οφείλει να διαθέτει και τον προσδιοριστή τύπου της, π.χ. ''int speed'' ή ''double latitude''. Εάν δεν υπάρχουν παράμετροι το περιεχόμενο των παρανθέσεων είναι κενό. - Μία σειρά από Exceptions (θα συζητηθεί αργότερα). - Το κυρίως σώμα της μεθόδου, το οποίο περιέχεται μέσα σε αγκύλες. Παρακάτω δίνεται ένα τυπικό παράδειγμα μεθόδου <code java> public int getCadence() { return cadence; } public void setCadence(int newValue) { cadence = newValue; } public int getGear() { return gear; } public void setGear(int newValue) { gear = newValue; } public int getSpeed() { return speed; } public void applyBrake(int decrement) { speed -= decrement; } public void speedUp(int increment) { speed += increment; } </code> ===== Υπερφόρτωση των μεθόδων μίας κλάσης ===== Βασικό χαρακτηριστικό του Αντικειμενοστραφούς Προγραμματισμού είναι η υπερφόρτωση των μεθόδων (ή συναρτήσεων). Με τον όρο υπερφόρτωση εννοούμε την δυνατότητα που μας δίνει ο Αντικειμενοστραφής Προγραμματισμός να ορίσουμε δύο μεθόδους με το ίδιο όνομα αλλά διαφορετικά ορίσματα. Τα ορίσματα μπορούν να διαφέρουν **α)** ως προς τον τύπο τους και **β)** ως προς τον αριθμό τους. Ας υποθέσουμε ότι έχουμε την κλάση DrawChars από ένα υποθετικό πρόγραμμα εκτύπωσης χαρακτήρων στην οθόνη. <code java> public class DrawChars { ... public void draw(String s) { ... } public void draw(int i) { ... } public void draw(double f) { ... } public void draw(int i, double f) { ... } } </code> Στην παραπάνω κλάση αν δεν είχαμε την δυνατότητα υπερφόρτωσης των μεθόδων της θα έπρεπε να κάνουμε κάτι σας το παρακάτω, το οποίο καταλήγει σε αισθητικά άσχημο και λιγότερο συντηρίσιμο κώδικα. <code c> public class DrawChars { ... public void drawString(String s) { ... } public void drawInt(int i) { ... } public void drawDoble(double f) { ... } public void drawIntDouble(int i, double f) { ... } } </code> |Προηγούμενο: [[:java:class_fields| Τα πεδία της κλάσης ]] | Επόμενο: [[:java:new | Δημιουργώντας Αντικείμενα - Ο τελεστής new ]]|

java/class_methods.1421861945.txt.gz · Last modified: 2016/02/26 11:15 (external edit)