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

14.9.22 יום ד', (חוף, אשכול ב', שעות 7-8) - מחלקת DateTime

 בכיתה
1. אודות הפעולה Main
    * בעת הרצת תכנית, מתבצע חיפוש אחר הפעולה Main ואז בלוק הפקודות שבה מתבצע
       שורה אחר שורה.
    * ה- Main נמצא כב"מ (ברירת-מחדל) במחלקת Program,
       אך מותר שהוא יהיה בכל מחלקה אחרת, גם אז התכנית תרוץ.
2. כללים ביצירת מחלקה חדשה (מחלקה המאפשרת ליצור עצמים מסוגה)
    * מקובל (ונכון מבחינה מתודולוגית) ליצור מחלקה חדשה בקובץ cs.* חדש.
    * ניתן ליצור מחלקה חדשה גם בקובץ של מחלקה אחרת, למשל בקובץ program.cs.
       למשל, אם נרצה ליצור מחלקת Point, נכתוב את שורת הכותרת שלה מחוץ לבלוק
       של מחלקת Program.
    * נקבע את הרשאת הגישה למחלקה שניצור כ- public ולא באמצעות הרשאה אחרת כלשהי.
3. בנאים
    * שלושת תפקידי הבנאי:
       א. יצירת העצם החדש.
           מי שמבקש ליצור את העצם החדש הוא המתכנת המעוניין ליצור ישות (עצם) מטיפוס המחלקה.
           מי שיוצר את העצם החדש הוא הבנאי.
           כדי ליצור עצם חדש, על המתכנת המשתמש במחלקה לכתוב new לפני שם הבנאי.
       ב. אתחול תכונות המחלקה כך שערכיהן יהיו בהתאם לאופי העצם שנוצר.
       ג. הקצאת מקום בזיכרון ה- Heap לשמירת העצם החדש. 
    * העמסת בנאים:
       - ניתן ליצור יותר מבנאי אחד. למשל: בנאי שלא מקבל פרמטרים ובנאי שמקבל 2 פרמטרים.
         כך ראינו בדוגמה של התרגיל הראשון PointProject.
       - בנאי הוא מתודה (פעולה). ניתן לכתוב יותר מפעולה אחד באותו השם באותה המחלקה.
         מקרה כזה מכונה "העמסת פעולות" (overloading).
       - התנאי המאפשר העמסת פעולות הוא שלכל פעולה תהיה חתימה שונה. 
         הכוונה היא שכמות הפרמטרים תהיה שונה או שאם כמות הפרמטרים זהה, סט הפרמטרים יהיה
         שונה. למשל: int x, int y ו- int x, double y.         
         להלן דוגמאות לחתימות חוקיות במקרה של מחלקת Point:

            public Point()
            public Point(int x, int y)
            public Point(int x, double y)
            pubic Point(double x, int y)
            public Point(double x, double y)
            public Point(int x, int y, string color)     //תקין, בהנחה שקיימת תכונת צבע במחלקה

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

לבית
1. סיימו בבית את התרגיל שהתחלנו במעבדה בשיעור ('קישורים' ס' 35).
    שמרו אותו ב- Disk on key.
2. בצעו במחשבכם את StudentProject drill01 ('קישורים' ס' 45).
    חובה לשמור כל תרגיל על גבי ה- Disk On Key שלכם.
    מומלץ לשמור עותק של ה- Disk On Key ב- Drive או במייל.
3. קראו אודות ההבדל בין פעולה רגילה במחלקה לבין הבנאי שבמחלקה (ס' 50).
4. בצעו במחשבכם את CarProject drill01 (ס' 55).
5. התכוננו למבדק ש.ב.

בשיעור הבא
1. מהי תכונה סטטית והאם ניתן להגדיר תכונה כזו גם ב- Main (ס' 60).
2. ביצוע התרגיל PersonProject drill01 (ס' 63).
3. מהן פעולות סטטיות? (ס' 64).
4. מהו בנאי סטטי? (ס' 65).
5. חזרה על העמסת פעולות (ס' 70).
6. תרגיל CarProject drill02 (ס' 75).

בהצלחה!