העמסת מתודות
חלק מהיחידה יסודות במסלול ה-Java של Coddy. שיעור 54 מתוך 73.
ב-Java, העמסת מתודות מאפשרת לך להגדיר כמה מתודות בעלות אותו שם אך עם פרמטרים שונים. פירוש הדבר הוא שתוכל להשתמש בכמה מתודות שמבצעות פונקציה דומה, אך פועלות על סוגי נתונים שונים או על מספר שונה של ארגומנטים.
המפתח הוא שלכל מתודה עם העמסת יתר חייבת להיות חתימת מתודה ייחודית. חתימת המתודה נקבעת לפי שם המתודה וסוג הפרמטרים שלה וסדרם.
הנה הכללים המרכזיים להעמסת מתודות:
- אותו שם: לכל המתודות עם העמסת יתר חייב להיות אותו שם.
- פרמטרים שונים: לכל גרסה של המתודה חייב להיות מספר שונה של פרמטרים, סוגי פרמטרים שונים, או שניהם.
- טיפוס ההחזרה אינו מספיק: מתודות בעלות העמסת יתר אינן יכולות להיות שונות רק בטיפוס ההחזרה שלהן. חייבות להיות להן רשימות פרמטרים שונות.
הנה דוגמה להמחשת העמסת מתודות:
public class MathUtils {
public static int add(int a, int b) {
return a + b;
}
public static double add(double a, double b) {
return a + b;
}
public static int add(int a, int b, int c) {
return a + b + c;
}
}בדוגמה הזו יש לנו שלוש מתודות בשם add. הראשונה מחברת שני מספרים שלמים, השנייה מחברת שני מספרים מסוג double, והשלישית מחברת שלושה מספרים שלמים.
Java קובעת איזו מתודה לקרוא על סמך הארגומנטים שמועברים במהלך הקריאה למתודה.
העמסת מתודות הופכת את הקוד לקריא יותר ולשימוש חוזר. במקום ליצור שמות שונים למתודות שמבצעות משימות דומות (למשל, addInts, addDoubles, addThreeInts), אפשר להשתמש בשם יחיד, add, ולתת למהדר לבחור את המתודה המתאימה בהתאם להקשר.
זכור: העמסת יתר דורשת טיפוסי פרמטרים או מספרי פרמטרים שונים, ולא רק שמות פרמטרים או טיפוסי החזרה שונים.
נסו בעצמכם
השיעור הזה לא כולל אתגר קוד.
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורים חלק 1
אופרטורים אריתמטייםאופרטור מודולוהגדלה/הקטנההגדלה/הקטנה לאחר מכןקיצורים אריתמטייםאופרטורי השוואההשוואת מחרוזות10מתודות (פונקציות)
הכרזה על מתודותפרמטרים של מתודהטיפוסי החזרההעמסת מתודותסיכום – פונקציית סיגמאסיכום – פונקציית אימותמתודות Void5אופרטורים חלק 2
אופרטורים לוגיים חלק 1אופרטורים לוגיים חלק 2סיכום - לוגיקה פשוטהאופרטורים לוגיים חלק 3אופרטורים לוגיים חלק 4תרגלו בעצמכם: קומפיילר Java אונליין