On this page
מערך שיעור: מחלקות, שדות וקונסטרוקטורים
משך: 2 שעות אקדמיות (90 דקות).
מטרת השיעור: הסטודנטים יבינו למה מחלקה עדיפה על משתנים מפוזרים, ויכתבו מחלקה עם קונסטרוקטור באופן עצמאי.
בסוף השיעור הסטודנטים צריכים: להגדיר מחלקה עם שדות וקונסטרוקטור, ליצור כמה מופעים עצמאיים ממנה, ולהסביר למה this נחוץ.
דגש קריטי: זהו שיעור הפתיחה של כל יחידת ה-OOP — הוא קובע את השפה (Class/Object/Field) שכל שאר היחידה נשענת עליה. השקיעו זמן בביסוס נכון.
מהלך השיעור
| חלק בשיעור | משך | הערות ודגשים |
|---|---|---|
| פתיחה וחיבור | 5 דקות | הראו קוד עם student1Name, student1Age, student2Name… — “מה אם יש 30 תלמידים?” |
| הבעיה: משתנים מפוזרים | 10 דקות | הדגישו סיכון לחוסר-סנכרון בין מערכים מקבילים |
| הרעיון: class | 15 דקות | הגדרת Student עם שדות בלבד, בלי קונסטרוקטור עדיין |
| קונסטרוקטור | 20 דקות | הוסיפו קונסטרוקטור, הסבירו “רץ פעם אחת ביצירה” |
| this | 15 דקות | הראו קונפליקט שם פרמטר/שדה בלי 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 המשתנים הבודדים שדיברתם עליהם בהתחלה.