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

6.10.22 יום ה', (חוף, אשכול ב', שעה 5) - שיעור אחרון לפני סוכות - חזרה: מיפוי העצם בזיכרון, תכונה סטטית + בנאי סטטי + פעולות Get/Set סטטיות

בכיתה

1. העצם בזיכרון
    העצם וערכי תכונותיו יושבים בזיכרון הערימה (Heap).
    הייחוס לעצם ("מצביע", הפנייה) יושב בזיכרון המחסנית (Stack).
2. תכונה סטטית
    * שייכת למחלקה (ולא לעצם זה או אחר).
    * יושבת פעם אחת בלבד בזיכרון וערכה משותף לכל העצמים שנוצרו מהמחלקה.
    * ערך התכונה קיים גם טרם היווצרות העצם הראשון מהמחלקה.
3. בנאי סטטי
    * תפקידו לאתחל את התכונות הסטטיות.
    * מופעל אוטומטית עם הרצת התוכנית, לפני שנוצר עצם כלשהו מהמחלקה.
4. הדגמת תכונה סטטית בפרויקט
    * הדגמת התכונה הסטטית country במסגרת CarProject.
    * הערך ששמנו בתכונה הוא "IL" כיוון שכל המכוניות בארץ הן עם התווית "IL",
       וההנחה שהתוכנה שלנו מטפלת במכוניות בעלות רישוי ישראלי בלבד.
       היתרון בכך שהתכונה country היא סטטית, שהערך שלה ("IL") משותף לכל העצמים.
       כלומר, גם אם יצרנו 100,000 עצמים מטיפוס Car, הרי שתכונה זו יושבת פעם אחת בלבד בזיכרון.
       וזה בניגוד לכל התכונות הרגילות, כמו למשל צבע, לכל רכב צבע שונה, כך שאם יצרנו 100,000
       עצמים של מכוניות, הרי ששם הצבע כתוב בזיכרון 100,000 פעמים, כמספר העצמים שיצרנו.
       גם אם כמה מכוניות הן באותו הצבע, עדיין צבע זה ייכתב בזיכרון יותר מפעם אחת,
       כמספר המכוניות בעלות צבע זה.
    * ראו פתרונות ל- 5 תרגילי CarProject בדף 'קישורים'. 

לבית (לאחרי חופשת סוכות, ליום ד', ה- 19.10.22)
הערות:
* את התרגילים שאתם מתבקשים לבצע במחשב, יש להקליד הפתרון שלכם לוודא שהתוכנית רצה בהצלחה.
* יש לשמור התרגילים על גבי ה- Disk On Key שלכם.
* מומלץ לשמור גיבוי גם בדרייב האישי שלכם.
* למי שהמחשב לא זמין, יכין התרגילים במלואם על דף.
* חשוב! הכינו שאלותיכם לקראת השיעור הבא.
1. StudentsProject - drill01
    (ראו בדף 'קישורים' סעיף 45, התרגיל, פתרונות ב- rar, פתרונות ב- pdf).
    פתרון rar
    פרויקט פתרון התרגיל מוכן לעבודה ב- Visual Studio.
    * יש להוריד את קובץ ה- rar המכווץ ולפרוס אותו אצלכם.
    * למי שלא יודע לפתוח קובץ rar, שאלו מישהו מהכיתה שיזכיר לכם.
    פתרון pdf
    מצ"ב גם עותק של פרויקט הפתרון כקובץ pdf:
    * למי שלא מצליח להוריד rar
    * למי שמעוניין להדפיס את הפתרון
    * למי שמעוניין לצפות בפתרון שלא באמצעות Visual Studio.
    זכרו: במקרה של קובץ pdf (ללא פתיחת קובץ ה- rar), תצטרכו להקליד את כל התרגיל בעצמכם.
    המטרה של תרגיל זה: שתדעו לעשותו בעצמכם מבלי להסתכל בפתרונות.
2. לקריאה
    * מהן פעולות סטטיות? (ס' 64).
    * מהו בנאי סטטי? (ס' 65).
    * חזרה על העמסת פעולות (ס' 70).
    * מהי תכונה סטטית והאם ניתן להגדיר תכונה כזו גם ב- Main, נמקו (ס' 60).
3.  לימוד עצמי
     * מהו const? (ראו דף 'קישורים' סעיף 95).
     * מהו readonly (ראו דף 'קישורים' סעיף 97).
4.  CarProject drills01-05
     בצעו במחשב את CarProject תרגילים drill01-drill05 
     (דף 'קישורים' סעיפים 55, 75, 98, 103, 104).
     ודאו שאתם מבינים ויודעים לעשותם.
     ראו הפתרונות להם בדף 'קישורים' בצמוד לכל אחד מהתרגילים בנושא זה.
     המטרה של תרגיל זה: שתדעו לעשותו בעצמכם מבלי להסתכל בפתרונות.
5.  הכנת שאלותיכם
     חשוב! הכינו כל שאלותיכם לשיעור הבא.
     אל תסתמכו על כך שתלמיד אחר כבר ישאל. בדרך כלל זה לא קורה.

בשיעור הבא (בחזרה מחופשת סוכות, יום ד', ה- 19.10.22)
1. מענה על שאלות בנושאי שיעורי הבית.
2. מבדק שיעורי בית על:
    * StudentsProject - drill01.
    * מהי תכונה סטטית, מהו בנאי סטטי, העמסת פעולות.
    * מתי כותבים פעולה סטטית במחלקה המיועדת לאפשר ליצור עצמים מסוגה?
    * מהו ההבדל בין מחלקה שמאפשרת ליצור עצמים מסוגה לבין מחלקת שירות?
    * כיצד ניתן לגשת מתוך ה- Main לפעולות סטטיות?
    * פעולות Get/Set לתכונות סטטיות.
3. מושגים בתקשורת בין עצמים.
4. ביצוע התרגיל StudentsProject - drill02.

מושגים בתקשורת בין עצמים
מהי תקשורת אל עצמים?
גישה או פנייה לתכונות ולשיטות של העצם. (למשל: ()s1.GetAvg).
מהי תקשורת פנימית תוך מחלקתית?
מתבצעת על-ידי קוד הכתוב בתוך המחלקה, פנייה אל התכונות והשיטות שבמחלקה,
כולל תכונות / שיטות בעלי הרשאת גישה private.
מהי תקשורת חיצונית אל המחלקה?
תקשורת המתבצעת מחוץ למחלקה, למשל: מתוך ה- Main, 
ומתוך עצם קיים
מסוג המחלקה, אל התכונות והשיטות שלה.
מהם עצמים מורכבים?  
תכונה שהיא עצם. למשל: במחלקת Student התכונה הורה או מחנך (נפרט בהמשך).
מהם יחסים בין מחלקות?  
ירושה. למשל: מחלקת Person ומחלקת Student (נפרט בהמשך).
דגשים לגבי התרגיל DateTime (ס' 35)
יצירת עצם 
יצירת עצם מתבצעת תמיד מחוץ למחלקה ובאמצעות זימון אחד מבנאי המחלקה.
למשל: יצירת עצם 
תאריך ממחלקת Date.
פעולות מאחזרות Get
למשל: קבלת היום / החודש / השנה, קבלת השעה / הדקות / השניות....
פעולות קובעות Set
למשל: קביעת היום בחודש (במקום הערך הקודם).