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

23.11.22 יום ד', (חוף, אשכול ב', שעות 7-8) - Base & Derived

ננושאי המבחן הראשון כאן ובדף 'קישורים' סעיף 116.

תרגיל היכול לעזור לקראת המבחן כאן.

בבכיתה 
1. בתרגול Base & Derived
    לפי פרדיגמת תכנות מונחה עצמים, הבנאי משמש (בעיקר) לצורך אתחול תכונות העצם.
    כאשר בנאים כוללים בתוכם פקודות פלט (Console.WriteLine), הדבר משמש כדיבאגינג -
    בדיקה עצמית של המתכנת: "מה בדיוק קורה כאשר הקוד מורץ", או לצורך פדגוגי - יצירת
    תרגיל הבודק רמת הבנה: "ענו מה יודפס כאשר יוצרים עצם כזה וכזה". בדיקת התלמיד,
    האם הוא בקיא מספיק בחומר ויודע לענות מיהם הבנאי/ם ה
מופעל/ים לצורך יצירתו העצם".
2. מאתחול תכונות מחלקת האב מתוך בנאי מחלקת הבן באמצעות base:
    * המטרה: מתוך בנאי שבמחלקת הבן - אתחול תכונות רלוונטיות במחלקת האב.
                   תואם את עיקרון ה- DRY (מניעה של כתיבת קוד חוזר).
3. הכינו במחשב את: AnimalsProject - drill01 וסיימו אותו בבית.
    מענה על שאלותיכם לגבי תרגיל זה + מבדק בנושא - בעוד שבועיים מהיום.
    הכנת
 התרגיל AnimalsProject: ליום חמישי ה- 8.12.22.
4. תאריכים נוספים:
    הבוחן יתקיים בשבוע הבא, יום ד', ה- 30.11.22.
    המבחן יתקיים ביום ג', ה- 6.12.22.
5. תרגול בכיתה: WorkerNManagerProject
    יש לסיים התרגיל במלואו עד ליום ה', ה- 8.12.22
    ולהיות מוכנים למבדק ש.ב גם על תרגיל זה (ס' 120).

לבית
1. הכינו במחשב את: AnimalsProject - drill01.
    מענה על שאלותיכם לגבי תרגיל זה + מבדק בנושא - בעוד שבועיים מהיום.

ענו לעצמכם \על השאלות הבאות, כהכנה לבוחן שיהיה בשבוע הבאה
2. ענו לגבי כל אחד מהסעיפים הבאים: נכון / לא-נכון
    א. האם קבוע מוגדר בהכרח כ- static?
    ב. האם אחד מתפקידי הבנאי להחזיר עצם?
    ג. לבנאי 3 תפקידים. האם זה נכון?
    ד. האם משתנה סטטי תורם לחיסכון במקום בזיכרון?
    ה. במחלקה 'הופעת-בידור' קיימת תכונה בשם 'מיקום ההופעה'.
        האם על תכונה זו להיות סטטית?
    ו.  במערך Workers קיימים 5 תאים. המערך מכיל 5 עובדים.
        האם נכון לומר שכל תא במערך
 מכיל עצם אחד בלבד (על כל תכונותיו)?

3. סמנו בעיגול את סעיפי המשפטים הנכונים
    א. אחת ממטרות הבנאי הינה ליצור עצם מטיפוס המחלקה.
    ב. במחלקת Animal יצרו שורת כותרת עבור בנאי המקבל פרמטר אחד, מטיפוס תווי:
        (public void Animal(char gender
        האם שורת הכותרת  תקינה?
    ג.  נכון להגיד לגבי מיקומו בזיכרון של ייחוס לעצם, שהוא (הייחוס) נמצא בהכרח
         בזיכרון ה- Stack (זיכרון המחסנית).
    ד.  ניתן להשתמש במילת-המפתח this כאשר מאתחלים תכונה כלשהי בבנאי.
         (בין אם הבנאי רגיל ובין אם הוא סטטי).
    ה. כאשר משתמשים במלים שמורות בשפה לצורך מתן שם למשתנה, מתקבלת שגיאת קומפילציה.
    ו.  כאשר מדפיסים את ערכו של משתנה מטיפוס שלם, משתנה שלא בוצעה לתוכו השמה
        (כלומר משתנה שלא אותחל), יוצג המספר אפס.

4. עקבו אחר הקוד שלהלן, ושרטטו כיצד תיראה תמונת הזיכרון בסיום ריצת הקוד:
    אני קוד.... אני קוד..... אני קוד...... אני קוד....... אני קוד......... אני קוד.......... אני קוד.........
    * בזיכרון המחסנית יש לציין את שמות המשתנים ואת תכולתם (ערך מטיפוס פרימיטיבי או ייחוס לעצם).
    * בזיכרון הערימה (ה- Heap) יש לציין את תכונותיו של כל אובייקט שנוצר בתוכנית.
    * שרטטו חיצים בכל מקרה של הפניה מייחוס לאובייקט.

5. עליכם לכתוב פעמיים את הפעולה Print במחלקת Kuku:
    פעם אחת פעולה בשם Print שלא מקבלת פרמטר ומדפיסה "Hello".
    פעם שנייה את הפעולה Print המקבלת פרמטר מחרוזתי שם של משתמש (נניח שזומנה הפעולה
    עם השם "Moshe"). במקרה כזה יודפס: "Hello Moshe".
    א. האם אפשרית יצירה של 2 פעולות במחלקה בעלות שם זהה מבלי לגרום לשגיאת קומפילציה?
    ב. במידה והדבר אפשרי, כיצד מכונה האפשרות ליצור שתי פעולות בעלות שם זהה באותה המחלקה?
        ניתן לכתוב את השם העברי או את השם באנגלית.
    ג. אם הדבר אפשרי, כתבו את שתי הפעולות במלואן במחלקת Kuku.

6. בצעו את התרגיל המופיע בסעיף x שבדף 'קישורים' בבלוג (התרגיל כתוב בדף הבוחן):
    האפשרויות על פי מספר סעיף: 109, 107, 104, 103, 80, 75, 63.

ראו התשובות הנכונות בסיום הפוסט מטה:


בשיעור הבא
1. ההבדל בין בנאי לשיטה רגילה.
2. שילוב תנאים בפעולות Get/Set.
3. כתיבת Get/Set בשיטה המקוצרת (לא לבגרות, טוב לדעת כי להבין הסברים והדגמות באינטרנט).
4. תרגיל WorkerNManagerProject - drill01 (ס' 120).
5. תרגיל ArrNums (ס' 130).


תשובות לשאלה 2:
א. נכון
ב. נכון
ג. נכון
ד. נכון
ה. לא נכון
ו. לא נכון

תשובות לשאלה 3 - הסעיפים הנכונים הם:
א
ג
ה