משך: 2 שעות אקדמיות (90 דקות).

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

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

דגש קריטי: זהו שיעור הפתיחה של כל יחידת ה-OOP — הוא קובע את השפה (Class/Object/Field) שכל שאר היחידה נשענת עליה. השקיעו זמן בביסוס נכון.


מהלך השיעור

חלק בשיעורמשךהערות ודגשים
פתיחה וחיבור5 דקותהראו קוד עם student1Name, student1Age, student2Name… — “מה אם יש 30 תלמידים?”
הבעיה: משתנים מפוזרים10 דקותהדגישו סיכון לחוסר-סנכרון בין מערכים מקבילים
הרעיון: class15 דקותהגדרת Student עם שדות בלבד, בלי קונסטרוקטור עדיין
קונסטרוקטור20 דקותהוסיפו קונסטרוקטור, הסבירו “רץ פעם אחת ביצירה”
this15 דקותהראו קונפליקט שם פרמטר/שדה בלי this, ואז עם this
תרגול מודרך15 דקותתרגיל 1+2
שאלות + סיכום10 דקותחיזרו על Class מול Object

דגשים להעברת השיעור

  • “תבנית מול מופע” היא האנלוגיה החשובה ביותר בשיעור הזה — כדאי אנלוגיה מוחשית (עוגיות מתבנית אחת, כל עוגייה עצמאית) לפני שעוברים לקוד.
  • הדגימו בפירוש ששינוי בשדה של מופע אחד לא משפיע על מופע אחר — זו הנקודה שהכי מבססת את המושג “עצמאות בין מופעים”.
  • public על השדות כאן הוא זמני ומכוון — אל תתעכבו על “האם זה נכון” כרגע, רק ציינו שהשיעור הבא יטפל בזה.

מושגים

Class — תבנית שמגדירה שדות ומתודות לישות מסוימת. Object (Instance) — מופע קונקרטי שנוצר מהתבנית עם new. Field — משתנה ששייך למחלקה, חלק מהמצב של כל מופע. Constructor — מתודה שרצה פעם אחת ביצירת מופע חדש. this — מתייחס למופע הנוכחי עצמו.


תרגיל חשיבה

שאלת פתיחה: “אם הייתם צריכים לנהל 100 תלמידים בלי מחלקות — רק משתנים בודדים — כמה משתנים הייתם צריכים, וכמה קל היה לטעות?”

מהלך: תנו לסטודנטים לחשב (100 תלמידים × 3 שדות = 300 משתנים). הובילו לתובנה שהבעיה לא רק “הרבה משתנים” אלא חוסר קשר פורמלי ביניהם — שום דבר לא מונע לעדכן studentName5 בטעות ולשכוח את studentAge5 המקביל.

מה המרצה מראה בסוף: צרו 3 מופעי Student בלולאה (או ידנית), אחסנו אותם ב-List<Student>, ועברו עליהם עם foreach והדפיסו את כולם בשורה אחת קצרה — הראו כמה זה קצר וברור בהשוואה ל-300 המשתנים הבודדים שדיברתם עליהם בהתחלה.