דילוג לתוכן הראשי

פוסט נובמבר-דצמבר 2025

 

בכיתה
1. משתנה סטטי, פעולה סטטית, בנאי סטטי.
2. הצהרה על קבוע, קבוע הוא סטטי, שמו באותיות גדולות בלבד.
3. תפקידי הבנאי (אתחול תכונות, יצירת עצם, החזרת כתובת העצם).
4. פעולה חיצונית לעומת פעולה פנימית.
5. עבודה עם מחלקת DateTime של השפה.
6. תרגול מחלקת Student.
7. הגדרת תכונה כ- readonly.
8. גלגול/העברת פרמטרים לבנאים קודמים.
9. מהו ממשק המחלקה.
10. א. ספירת כמות העצמים שנוצרו מטיפוס המחלקה.
      ב. שמירת המספר הסידורי של העצם כך שיהיה שייך לעצם הספציפי,
          ערכו ישקף את כמות העצמים שנוצרו מהמחלקה עד אליו (כולל).
10. בנאי ברירת-מחדל של המחלקה במידה ואין בה כלל בנאים: מאחורי הקלעים יהיה קיים
      בנאי שלא מקבל פרמטרים עם בלוק ריק (מאתחל את תכונות המחלקה לערכי ברירת-מחדל).
11. בנאי ברירת-מחדל המזומן מסוף שורת הכותרת של הבנאי הנוכחי:
      * אם לא בוצע זימון באופן מפורש על-ידי שימוש במלת-המפתח base,
        יזומן מתוך מחלקת האב הבנאי שלא מקבל פרמטרים.
      * אם במחלקת האב אין כלל בנאים, יזומן בנאי ב"מ של מחלקת האב (בנאי ריק עם בלוק ריק).
      * אם במחלקת האב קיים בנאי אחד או יותר, שכל אחד מהם מקבל פרמטר אחד לפחות,
        תתקבל שגיאה תחבירית (Syntax), כלומר שגיאת קומפילציה (Compilation error),
        כיוון שזימון ב"מ של בנאי ממחלקת האב מחפש בנאי ריק.
12. תווים מיוחדים, (נכתבים בתוך גרשיים בלבד), התו המיוחד n\ --> ירידת-שורה,
      התו המיוחד t\ --> קפיצה ימינה לטאב הבא (המרווח בין הטאבים נקבע מראש, והוא בגודל של 8 תווים).
13. הורשת פעולות, מה קורה כאשר פעולה בחתימה זהה נמצאת במחלקת האב ובמחלקת הבן?
      * כאשר הפעולה תזומן מתוך עצם של מחלקת האב - תורץ הפעולה שבמחלקת האב.
      * כאשר תזומן הפעולה על עצם מטיפוס מחלקת הבן - תזומן הפעולה שבמחלקת הבן.
14. משמעות המלה new בחתימת פעולה פנימית במחלקה.
15. זימון פעולה על עצם מטיפוס השייך להיררכיית מחלקות
      אם מחלקת Teacher יורשת ממחלקת Worker שיורשת ממחלקת Person, ואנו מזמנים על העצם t1
      (שהוא מטיפוס Teacher) פעולה כלשהי, למשל את הפעולה Print, סי-שארפ תחפש פעולה זו במחלקת
      Teacher. אם הפעולה נמצאת, היא תורץ. אם לא, סי-שארפ תבדוק האם הפעולה מתקבלת בהורשה
      ממחלקת האב או ממחלקת הסב וכו', אם כן - היא תריץ אותה.
16. זימון פעולה על עצם מטיפוס השייך להיררכיית מחלקות - virtual / override
      נניח כי קיים מערך מטיפוס Person ובו עצמים מטיפוס מחלקה זו, מטיפוס Worker היורשת אותה
      או מטיפוס Teacher היורשת את Worker, אם נזמן על עצם מטיפוס Teacher הקיים באחד מתאי המערך 
      את הפעולה ToString, הרי שסי-שארפ תחפש את הפעולה במחלקת Person, כיוון שהשפה פועלת
      לפי טיפוס הייחוס המפנה אל העצם ולא לפי טיפוס העצם עצמו.בכדי לגרום לשפה לבצע חיפוש של הפעולה
      ToString בהתאם לטיפוס העצם (Teacher) ולא לפי טיפוס הייחוס (Person), הרי שנשתמש במנגנון
      ה- Virtual / Override השייך לעיקרון הפולימורפיזם. במידה ולא יהיה כתוב virtual / override,
      הרי שבמקרה הדוגמא דנן, תורץ ToString הנמצאת במחלקת Person.
17. Upcasting/Downcasting  
     
כאשר מערך מטיפוס מחלקת אב (למשל: Person) מפנה לעצם בן (למשל: Worker),
      מדובר ב- Upcasting המתבצע באופן אוטומטי (המרה מרומזת), כיוון שייחוס אב יכול להכיל כתובת
      המפנה לעצם ממחלקת בן.

      כאשר ייחוס אב מפנה לעצם בן, לדוגמה:  ;()Person w = new Worker,
      ואנו רוצים לבצע השמה של הכתובת שבייחוס האב w לתוך ייחוס הבן wrk שנוצר כך:  ;Worker wrk,
      יהיה עלינו לבצע המרה מפורשת של הייחוס w לייחוס מטיפוס Worker,
      כך ששורת ההשמה תיראה כך:  ;wrk = (Worker) w.
      מדובר ב- Downcasting המתבצע באופן יזום על-ידי המתכנת (המרה מפורשת),
      כיוון שייחוס הבן wrk (שהוא מטיפוס Worker) לא יכול להפנות לכתובת שב- w,
      שכן הייחוס w הוא מטיפוס האב Person).
      הערה: ייחוס אב יכול להפנות לעצם בן, אך לא יכול לזמן פעולות השייכות למחלקה של הבן.
     
ייחוס אב לא יכול לגשת לממשק הפעולות שנוצרו במחלקת הבן, אך ההיפך אפשרי: ייחוס בן,
      למשל w שהוא מטיפוס Worker ומפנה לעצם Worker, יכול לזמן פעולות שנוצרו במחלקת האב Person,
      וזאת מתוקף חוקי ההורשה. בן יורש את ממשק האב, אך האב לא יורש את ממשק הבן.

      זאת הסיבה שאם ייחוס אב מפנה לעצם מטיפוס בן, ואנו רוצים לזמן פעולה שנכתבה במחלקת הבן,
      יש לבצע המרה מפורשת Downcasting של טיפוס ייחוס האב, כך שהייחוס יהיה מטיפוס הבן.
      דוגמה:  ;()Worker(w)).
Print) יזמן את הפעולה Print הנמצאת במחלקת Worker
      ולא במחלקת Person (גם אם לא השתמשנו במנגנון הפולימורפיזם - virtual/override).


נושאי המבחן (מבחן שני במחצית א' תשפ"ו, ראו סעיף 115 בדף 'קישורים')
1. זיכרון Stack / Heap.
2. אלמנטים סטטיים במחלקה (תכונות, בנאים, פעולות).
3. קבוע.
4. פעולה חיצונית לעומת פנימית.
5. תכונה מסוג readonly.
6. סוגי שגיאות (תחבירית/Syntax, זמן-ריצה/Run-time, לוגית/Logic).
7. this.
8. ההבדלים בין פעולת בנאי לפעולה רגילה.
9. שילוב תנאים בפעולות Get/Set.

לבית
ש.ב לשיעור של יום ג' 23.12.2025 (מיד בתום חופשת חנוכה), יהיה מבדק ש.ב.
1דף 'קישורים' - בצעו התרגילים, קראו ההסברים:
    א. תרגילי UpcastingNDowncasting - ראו סעיפים 410, 420, 430 בדף 'קישורים'.
        תזכורת: את כל הקוד שבכל התרגילם שבדף 'קישורים' עליכם לכתוב ולהריץ מחשב על-מנת לוודא
        שפתרתם נכון, כולל התנסות בבאגים ותיקונם וכן ביצוע ניסויים שונים "מה יקרה אם אשנה את הקוד
        באופן כזה או אחר?" - זו הדרך המומלצת ביותר להתמקצע וגם להיות מוכנים למבדקים ולמבחנים.
     ב. תרגיל CollageProject (חישובים לפי שנת לידה) - סעיף 114 בדף 'קישורים'.
     ג. תרגיל virtual בנושא פולימורפיזם - סעיף 213 בדף 'קישורים'.
     ד. תרגיל Shape1 - סעיף 432 בדף 'קישורים'.
     ה. מתוך "אשכול 27 תרגילים בנושא רשימות" כאן ענו על שאלות 1-10 בלבד (השאלות ברמת הבסיס).
     ב ה צ ל ח ה.         

ש.ב לשיעור של יום ב' 8.12.2025
(יהיה מבדק על ש.ב שלהלן וכן על מה שהסברנו בכיתה)

1דף 'קישורים' - בצעו התרגילים, קראו ההסברים:
    א. SchoolEntitiesProject ללא החלק החמישי סעיף י' (ס' 210).
    ב. קראו אודות המושגים הורשה-הכלה-פולימורפיזם (ס' 170).

ש.ב לשיעור של יום ה' 27.11.2025
1דף 'קישורים' - בצעו התרגילים, קראו ההסברים:
    א. PersonNStudentProject-drill01 (ס' 107).
    ב. PersonNStudentProject-drill02 (ס' 109).
    ג. AnimalsProject-drill01 (ס' 110).

ש.ב מיום ה' 13.11.2025 --> לשיעור של יום ב' 17.11.2025
1דף 'קישורים' - בצעו התרגיליםקראו ההסברים:
    א. CarProject-drill01 (ס' 55).
    ב. 
PersonProject-drill01 (ס' 63).
    ג.  CarProject-drill02 (ס' 75).
    ד.  MaxNumProject (ס' 80).
    ה. CarProject-drill03 (ס' 98).

    ו.  הבדלים בין פעולות (ס' 50).
    ז.  בנאים והעברת פרמטרים בין בנאים (ס' 52).
    ח. העברת פרמטרים לבנאי אחר (ס' 53).
    אלמנטים סטטיים במחלקה:
    ט.  סטטי (ס' 60).
    י.   פעולות סטטיות (ס' 64).
    יא. בנאי סטטי (ס' 65).
    יב. העמסה/overloading (ס' 70).
    יג. קבוע/const (ס' 95).
    יד. this (ס' 100).
    טו. שילוב תנאים בפע' Get/Set (ס' 102).
    טז. CarProject-drill04 (ס' 103).
    יז.  CarProject-drill05 (ס' 104).

בשיעורים הבאים
1. readonly.
2. העברת פרמטרים לבנאים קודמים (D.R.Y).
3. מהו ממשק המחלקה.
4. כמות העצמים שנוצרו מהמחלקה.