This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
java:class_methods [2018/02/16 16:02] gthanos |
java:class_methods [2019/02/22 08:23] gthanos [Υπερφόρτωση (overloading) των μεθόδων μίας κλάσης] |
||
---|---|---|---|
Line 64: | Line 64: | ||
</WRAP> | </WRAP> | ||
- | Ας υποθέσουμε ότι έχουμε την κλάση **DrawChars** η οποία αποτελεί μέρος ενός υποθετικού προγράμματος εκτύπωσης χαρακτήρων στην οθόνη του υπολογιστή. Διαθέτουμε την μέθοδο //draw// η οποία διαθέτει διαφορετικές εκδόσεις ανάλογα με τι εκτυπώνεται κάθε φορά. Το ποια έκδοση χρησιμοποιείται σε κάθε κλήση της μεθόδου αποφασίζεται από τον compiler με βάση το είδος και τον αριθμό των ορισμάτων. | + | Ας υποθέσουμε ότι έχουμε την κλάση **SumNumbers** η οποία αποτελεί μέρος ενός υποθετικού προγράμματος άθροισης αριθμών. Διαθέτουμε την μέθοδο //sum// η οποία διαθέτει διαφορετικές εκδόσεις αθροισμάτων. Το ποια έκδοση χρησιμοποιείται σε κάθε κλήση της μεθόδου αποφασίζεται από τον compiler με βάση το είδος και τον αριθμό των ορισμάτων. |
<code java> | <code java> | ||
- | public class DrawChars { | + | public class SumNumbers { |
- | ... | + | |
- | public void draw(String s) { | + | public double sum(double []nums) { |
- | ... | + | double sum = 0; |
+ | for(double num : nums) sum += num; | ||
+ | return sum; | ||
} | } | ||
- | public void draw(int i) { | + | public double sum(double a, double b) { |
- | ... | + | return a+b; |
} | } | ||
- | public void draw(double f) { | + | public double sum(double a, double b, double c) { |
- | ... | + | return a+b+c; |
} | } | ||
- | public void draw(int i, double f) { | + | // sum double a, count times |
- | ... | + | public double sum(double a, int count) { |
+ | double sum = 0; | ||
+ | for(int i=0; i<count; i++) | ||
+ | sum += a; | ||
+ | return sum; | ||
} | } | ||
} | } |