Israel Bagrut Computer Science 5 Units study materials
Israel Bagrut Computer Science 5 Units study resources

Israel Bagrut Computer Science 5 Units: תכנות מונחה עצמים ועיצוב

Israel Bagrut Computer Science 5 Units · Work through your exam, one topic at a time.

All guide sections

תכנות מונחה עצמים ועיצוב

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

עקרונות

  • כיתה היא תבנית; אובייקט הוא מופע עם מצב משלו.
  • כמוסות: שדות private, גישה דרך מתודות; שומרים על אינווריאנטה של האובייקט.
  • ירושה: extends מבטא is-a; הרכבה מבטאת has-a וגמישה יותר.
  • רב-צורתיות: משתנה מטיפוס בסיס יכול להצביע לאובייקט נגזר, והמתודה שמתבצעת נקבעת בזמן ריצה לפי הטיפוס בפועל.
  • מחלקה מופשטת יכולה להכיל מימוש חלקי; ממשק מגדיר חוזה.
  • overloading הוא אותו שם עם חתימה שונה; overriding הוא דריסה של מתודה תורשתית.

דוגמה מעובדת

מחלקה מופשטת Shape עם area(). Circle מחזירה Math.PIrr ו-Rectangle מחזירה w*h. מערך Shape[] shapes = {new Circle(2), new Rectangle(3,4)}; מעבר על המערך וקריאה ל-shapes[i].area() יפעיל את המימוש המתאים לכל אובייקט. הנימוק: ההחלטה אינה לפי טיפוס המשתנה Shape אלא לפי האובייקט שנבנה בפועל, וזו רב-צורתיות.

מלכודות

  • חשיפת שדות ציבוריים ושימוש ישיר בהם במקום מתודות.
  • בלבול בין overloading ל-overriding.
  • קריאה למתודה שנדרסה מתוך בנאי המחלקה האב לפני שהאובייקט הנגזר אותחל.
  • שכחת super() או אי-אתחול שדות.
  • שימוש בירושה כשיש קשר has-a, מה שיוצר שבירות.