Interface
Interface – מחלקה של
פונקציות שבמידה ומחלקה אחרת רוצה לירש היא חייבת לבצע את כל הפונקציות במחלקה
אין את גוף הפונקציות אלא רק את השמות שלהם
מחלקה שלא אומרת איך
לעשות אלא רק מה צריך לעשות
interface
הוא כמו חוזה בין מחלקות המאפשר למתכנת לבנות תבנית ולבנות שירות המבוסס על תבנית
זו וכל אחד שיממש את התבנית יוכל להשתמש בשירות זה.
·
נהוג ששם ה interface יתחיל תמיד בi
·
הפונקציות ב interface ללא הרשאות
גישה ולכן המחלקה חייבת להיות public
·
ניתן לרשת יותר מ interface אחד
!! (מחלקה יכולה לרשת רק ממחלקה אחת)
·
לא ניתן ליצור אובייקטים ממחלקה זו
·
אם רוצים לבצע הורשה + interface קודם נגדיר את ההורשה
ואח"כ את ה interface
·
Interface יורש interface ומי שירצה לממש את השני יצטרך לממש גם את
הראשון
טיפ חשוב – כשיורשים Interface וצריכים לממש את כל ההצהרות לא צריך לכתוב אותם חדש! יש פונקציה
של הVS שעושה
את זה לבד.
לחיצה על ה Interface
תציג מנורה נלחץ על המנורה > נבחר implement Interface > יפתח חלונית שתציג את כל הנתונים של שייווצרו > לחיצה על
הכפתור תיצור השלד של כל המימושים
בתוך הפונקציה יהיה
כתוב () throw
new NotImplementedException – (כתוב חדש -
לא מומש)
System object
כל מחלקה יורשת מsystem object ישירות או דרך מחלקה שממנה יורשת
ToString()
- פונקציה המתקבלת מ object ביצוע הפונקציה על אובייקט מציג את הפרטים של האובייקט
Operator Overloading – ניתן לשנות את
הפונקציה באמצעות Overloading
שתציג מחרוזת טקסט שונה
לדוג'
public String ToString()
{
string result = string.Empty;
result
= string.Format("widght and
height are {0} and {1}" ,width ,height);
return result;
}
1.
הכרזנו על פונקציה בשם result ואתחלנו אותה
2.
מגדירים את המחרוזת
3.
מחזירים את הערך
Console.WriteLine(shapes.ToString());
עכשיו כשניקח
אובייקט ונכריז עליו את הפונקציה המערכת תיקח את המשתנים של האובייקט כפי שהגדרנו
ותציג את המחרוזת
פונקציה רקורסיבית - עצרת
חישוב עצרת באמצעות
פונקציה רקורסיבית
עֲצֶרֶת היא מכפלת כל
המספרים הטבעיים מ־1 ועד למספר נתון. מוצג כ - N!
למשל, "4 עצרת"
היא המכפלה
1*2*3*4=24
הקוד הבא משתמש
בפונקציה רקורסיבית לחישוב העצרת באמצעות פירוק הבעיה לגורמים
בכל פעם הפונקציה מכפילה
את הערך שלה בקריאה לעצמה + הורדת המשתנה ב1 עד שמגיע ל1
ואז חוזר אחורה
לחישוב
static int CalculateFactorial(int num)
{
if (num == 0)
return 1;
else
return num * CalculateFactorial(num
- 1)
}
לדוג' אם הערך
הראשוני הוא 3 התוכנה יוצרת 3 פונקציות שכל אחת שולחת לבאה את הערך – 1 וממתינה לתשובה
כשהאחרונה תגיע ל0 היא
חוזרת לזו שלפניה עם הערך 1 שמכפילה אותו ב2 וחוזרת לזו שלפניה שמכפילה אותו ב3
אין תגובות:
הוסף רשומת תגובה