Menu
Coddy logo textTech

העמסת מתודות

חלק מהיחידה יסודות במסלול ה-Java של Coddy. שיעור 54 מתוך 73.

ב-Java, העמסת מתודות מאפשרת לך להגדיר כמה מתודות בעלות אותו שם אך עם פרמטרים שונים. פירוש הדבר הוא שתוכל להשתמש בכמה מתודות שמבצעות פונקציה דומה, אך פועלות על סוגי נתונים שונים או על מספר שונה של ארגומנטים.

המפתח הוא שלכל מתודה עם העמסת יתר חייבת להיות חתימת מתודה ייחודית. חתימת המתודה נקבעת לפי שם המתודה וסוג הפרמטרים שלה וסדרם.

הנה הכללים המרכזיים להעמסת מתודות:

  1. אותו שם: לכל המתודות עם העמסת יתר חייב להיות אותו שם.
  2. פרמטרים שונים: לכל גרסה של המתודה חייב להיות מספר שונה של פרמטרים, סוגי פרמטרים שונים, או שניהם.
  1. טיפוס ההחזרה אינו מספיק: מתודות בעלות העמסת יתר אינן יכולות להיות שונות רק בטיפוס ההחזרה שלהן. חייבות להיות להן רשימות פרמטרים שונות.

הנה דוגמה להמחשת העמסת מתודות:

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, ולתת למהדר לבחור את המתודה המתאימה בהתאם להקשר.

זכור: העמסת יתר דורשת טיפוסי פרמטרים או מספרי פרמטרים שונים, ולא רק שמות פרמטרים או טיפוסי החזרה שונים.

נסו בעצמכם

השיעור הזה לא כולל אתגר קוד.

quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר Java אונליין