שגרה (תכנות) – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
Delta739 (שיחה | תרומות)
Delta739 (שיחה | תרומות)
שורה 86:
==סוגים של מטודות==
 
* מטודה [[רקורסיה|רקורסיבית]] - מטודה שמפעילה את עצמה עד להגעה לתנאי עצירה מסוים. בעזרת מטודות רקורסיביות, ניתן לממש הגדרות רקורסיביות כגון עצרת, סדרת פיבונצ'י או סדרות נסיגה. כדי לדעת למשל את ערך של !10 צריך לכפול את 10 ב-9, את התוצאה יש לכפול ב-8 וכן הלאה עד שכופלים ב-1. מטודה רקורסיבית שתממש עצרת תמשיך לקרוא לעצמה עד שהפרמטר (הכופל) של התוצאה הוא 1. כל מטודה שמפעילה לולאה על מנת להשיג תוצאה מסוימת, ניתן להמיר למטודה רקורסיבית ולהיפך.
* מטודה וירטואלית - מטודה שמוגדרת באובייקט אב כמטודה וירטואלית. אובייקטים שיירשו ממחלקת האב יוכלו לממש את המטודה מאובייקט האב באופן אחר (Override) וכך יתאפשר פולימורפיזם. לדוגמה, אובייקט האב הוא גיבור-על ויש לו מטודה בשם פעולת-על (SuperAction) שהיא מוגדרת כוירטואלית, ויש לה מימוש כלשהו. אובייקט שיירש תכונות מהאובייקט גיבור-על (למשל [[באטמן]]) יממש את המטודה פעולת-על באופן אחר. אובייקט שני שיירש תכונות מאובייקט האב גיבור-על (למשל [[סופרמן]]) יממש את המטודה פעולת-על באופן שלישי. לכל מופע של כל אחד משלושת האובייקטים תהיה אותה מטודה ועם אותם פרמטרים (או היעדרם) אבל עם מימוש, אופן פעולה שונה.
* מטודה אבסטרקטית - מטודה שמוגרת באובייקט אב, והאובייקטים היורשים ממשים בצורה שונה. להבדיל ממטודה וירטואלית, מטודה אבסטרקטית באובייקט האב אינה מכילה קוד.