טיפים בנושא תכנות מונחה עצמים שפת C# ושפת Javaבנאי...

טיפים בנושא תכנות מונחה עצמים שפת C# ושפת Java


בנאי ריק קיים באחת משני הדרכים הבאות:
א. יצרו אותו
ב. אין שום בנאי אחר, אז הוא מתקיים "בלי שרואים אותו"


מהו overloading העמסה?
שתי פונקציות שהחתימות שלהן דומות אך שונות:
דומה: שם הפונקציה, ערך החזרה.
שונה: טיפוסי / כמות הפרמטרים.

ב-Java, המושג Overloading, או בעברית "העמסה", מתייחס ליכולת ליצור מספר שיטות (methods) באותה מחלקה (class) עם אותו שם אך עם חתימות (signatures) שונות. החתימה של שיטה כוללת את שם השיטה ואת רשימת הפרמטרים שלה, כולל סוג הפרמטרים וסדרם.
כאשר מגדירים שיטות עם אותו שם אך עם רשימות פרמטרים שונות, המהדר של Java יודע להבחין בין השיטות לפי מספר הפרמטרים, סוגי הפרמטרים, והסדר שלהם. חשוב לציין שהחזרה של סוג שונה בלבד אינה מספיקה כדי לבצע Overloading - חייבים לשנות את רשימת הפרמטרים.


public class Calculator {
// שיטה לחיבור שני מספרים שלמים
public int add(int a, int b) {
return a + b;
}

// שיטה לחיבור שלושה מספרים שלמים
private int add(int a, int b, int c) {
return a + b + c;
}

// שיטה לחיבור שני מספרים מסוג double
public double add(double a, double b) {
return a + b;
}

// שיטה לחיבור מספרים double ומספר שלם
public double add(double a, int b) {
return a + b;
}
}


מהו המושג Override
ב-Java, המושג Override, או בעברית "דריסה", מתייחס למנגנון שבו מחלקה יורשת (subclass) מספקת מימוש (implementation) חדש לשיטה שכבר הוגדרה במחלקת האב (superclass). השיטה במחלקה היורשת חייבת להיות בעלת אותה חתימה כמו השיטה במחלקת האב, כלומר, אותו שם שיטה, אותם פרמטרים ואותו סוג חזרה. השימוש ב-Override מאפשר להתאים או לשנות את ההתנהגות של שיטות בירושה כדי לעמוד בדרישות המחלקה היורשת.