דף תרגול: תכנות מונחה עצמים (OOP) ב-C#
עקרונות יסוד: מחלקות, תכונות, פעולות בונות, כימוס ופעולת ToString.
תזכורת מושגים
- מחלקה (Class): תבנית / שבלונה להגדרת טיפוס נתונים חדש, המגדיר מה העצם יודע לשמור ומה הוא יודע לעשות.
- תכונות (Fields): משתנים פרטיים השומרים את מצב האובייקט.
- פעולות (Methods): פונקציות המגדירות את התנהגות האובייקט.
- פעולה בונה (Constructor): מופעלת אוטומטית בעת יצירת עצם (new) ומאתחלת את ערכיו.
חלק א׳: תרגול חשיבה ותכנון
משימה 1: תכנון מחלקות ותכונות
עבור כל אחת מהמחלקות הבאות, הגדירו במחברתכם 3 תכונות מתאימות, כולל שם משמעותי וטיפוס נתונים מתאים, כגון string, int, double, bool, ו-2 פעולות הגיוניות.
| שם המחלקה | דרישות תכנון |
|---|---|
| Student (תלמיד) | הגדירו 3 תכונות המאפיינות תלמיד ו-2 פעולות שתלמיד יכול לבצע או שמבוצעות עליו. |
| BankAccount (חשבון בנק) | הגדירו 3 תכונות המאפיינות חשבון בנק ו-2 פעולות, למשל הפקדה ומשיכה. |
| Clock (שעון) | הגדירו 3 תכונות המאפיינות שעון, למשל שעה, דקות ושניות, ו-2 פעולות מתאימות. |
משימה 2: שאלות נכון / לא נכון
קבעו עבור כל היגד האם הוא נכון או לא נכון ונמקו במחברתכם:
- מחלקה היא עצם ממשי בזיכרון, ועצם הוא רק תוכנית הבנייה.
- לפעולה בונה (Constructor) אין טיפוס החזרה, אפילו לא void.
- המילה השמורה this משמשת להבדלה בין שדה במחלקה לבין פרמטר באותו שם.
- פעולות Get ו-Set מאפשרות שליטה ובקרה על שדות פרטיים - עקרון הכימוס (Encapsulation).
חלק ב׳: תרגול כתיבת קוד ב-C#
תרגיל 1: הגדרת שלד המחלקה ושדות פרטיים
כתבו במחברת או בסביבת הפיתוח מחלקה בשם Book הכוללת 4 שדות בהרשאת גישה פרטית (private):
- כותרת הספר - title, מחרוזת.
- שם המחבר - author, מחרוזת.
- מספר עמודים - pages, מספר שלם.
- האם בכריכה קשה - isHardcover, ערך בוליאני.
public class Book
{
// הגדירו את ארבע התכונות הפרטיות
}תרגיל 2: הוספת פעולות בונות (Constructors)
הוסיפו למחלקה Book:
- פעולה בונה ברירת מחדל, ללא פרמטרים, המאתחלת את השדות לערכים ראשוניים מתאימים, כגון מחרוזות ברירת מחדל, 0 ו-false.
- פעולה בונה עם פרמטרים, המקבלת 4 ערכים ומבצעת השמה לכל השדות תוך שימוש במילה השמורה this.
// חתימות הפעולות הבונות למימוש
public Book()
{
}
public Book(string title, string author, int pages, bool isHardcover)
{
}תרגיל 3: פעולות Get / Set ופעולת ToString
הוסיפו למחלקה Book:
- פעולת גישה GetPages המחזירה את מספר העמודים.
- פעולת עדכון SetPages המקבלת מספר עמודים ומעדכנת את השדה. הוסיפו בדיקה שהערך אינו שלילי.
- פעולת ToString() המחזירה מחרוזת ייצוגית ומפורטת של כל תכונות האובייקט.
public int GetPages()
{
}
public void SetPages(int pages)
{
}
public string ToString()
{
}