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

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