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

5.1.23 יום ה', (חוף, אשכול ב', שעה 5) - תרגיל ShapesProject-Basic1

  בבכיתה 

1. הפעולה is
    השתמשנו בה לצורך בדיקה האם האיבר הנוכחי במערך הוא מטיפוס של מחלקת בת כלשהי
    של טיפוס המערך Shape.

if(arr[i] is Circle);

2. השימוש ב- Casting
    השתמשנו בו כדי לבצע המרה של ייחוס Shape לייחוס Circle.
    בתחילה בדקנו האם האיבר הנוכחי הוא מטיפוס Circle, וזאת כדי להדפיס את קוטרו.
    אם הסתבר שהאיבר הוא מטיפוס Circle, אז כדי לזמן עליו את הפעולה המחזירה את
    ערך הקוטר, עלינו לבצע המרה של ייחוס תא המערך הזה ל- Circle.

((Circle)arr[i]).GetDiameter();     

    מדוע היה עלינו לבצע את ההמרה?
    כיוון שייחוס המערך הוא Shape, וייחוס מטיפוס Shape לא יכול לפנות לפעולה של מחלקת Circle.
    מה הכוונה כשאומרים המרה?
    המרה לא נוגעת לטיפוס העצם, אלא לטיפוס הייחוס המפנה אליו.
    ייחוס Shape יכול להפנות לעצם Circle, כך גם ייחוס מטיפוס Circle, היכול להפנות לעצם כזה.
    ייחוס Shape יכול לגשת לחברי מחלקה שהוגדרו במחלקת Shape או במחלקה שמעליה.
    ייחוס Shape לא יכול לגשת לחברי מחלקה שהוגדרו במחלקה היורשת ממנה.
    זאת הסיבה שאנו מבצעים המרה של הייחוס המפנה מ- Shape ל- Circle.

לבית
תרגול
1
בצעו את תרגיל SchoolEntitiesProject (סעיף 210 בדף 'קישורים').
צפייה 
2. מערך עצמים - מאת אילן תם כאן
    * שימוש בלולאה ליצירת עצמים.
    * שימוש בלולאה לקביעת ערכי התכונות של העצמים שיצרנו.
    * הדפסת הסטודנטים שציונם גבוה מ- 80.
מבדק ש.ב
3. התכוננו למבדק ש.ב על התרגיל SchoolEntitiesProject.

בשיעורים הבאים
1הסברהורשה-הכלה-פולימורפיזם - Inheritance-Composition-Polymorphism (ס' 170).
2. תרגיל: ClassStudentsProject הוספת תכונה מורכבת (Complex Data-Type)
               המוכלת (Composition) במחלקה (ס' 190).
3. תרגיל: SchoolEntitiesProject שימוש באופרטור is ודריסת פעולות בהיררכיית המחלקות (ס' 210).