תרגול מדעי המחשב

מונה עצמים

בינוני Java

המשימה

בנה מחלקה בשם Ticket שמייצגת כרטיס בתור.

המחלקה תכלול:
• תכונה **סטטית** פרטית counter, שמתחילה מ-0 ומשותפת לכל הכרטיסים.
• תכונה פרטית רגילה id, ייחודית לכל כרטיס.
• בנאי בלי פרמטרים שמקדם את המונה ב-1 ומציב את ערכו כ-id של הכרטיס
  החדש. הכרטיס הראשון מקבל 1, השני 2, וכן הלאה.
• פעולה מאחזרת ל-id.
• פעולה **סטטית** getCount שמחזירה כמה כרטיסים נוצרו עד כה.

הנחיות:
• תכונה סטטית שייכת למחלקה, לא לעצם. יש ממנה עותק אחד בלבד, וכל
  העצמים רואים אותו.
• פעולה סטטית נקראת על שם המחלקה ולא על עצם: Ticket.getCount().
• פעולה סטטית אינה יכולה לגשת לתכונה שאינה סטטית — נסה ותראה מה
  הקומפיילר אומר. זו הנקודה של התרגיל.

```ds:table
{"title":"מה קורה בכל יצירה","rows":[["יצירה","counter אחרי","id שהוקצה"],["ראשונה","1","1"],["שנייה","2","2"],["שלישית","3","3"]]}
```

קוד הפתיחה

class Ticket {
    private static int counter = 0;
    private int id;

    public Ticket() {
        // קדם את המונה, והצב את ערכו ב-id
    }

    public int getId() {
        return 0;   // החזר את id
    }

    /** כמה כרטיסים נוצרו עד כה. */
    public static int getCount() {
        // כתוב את הפתרון כאן
        return 0;
    }
}

public class Main {
    public static void main(String[] args) {
        System.out.println(Ticket.getCount());   // 0

        Ticket a = new Ticket();
        Ticket b = new Ticket();
        Ticket c = new Ticket();

        System.out.println(a.getId());           // 1
        System.out.println(b.getId());           // 2
        System.out.println(c.getId());           // 3
        System.out.println(Ticket.getCount());   // 3

        Ticket d = new Ticket();
        System.out.println(d.getId());           // 4
        System.out.println(a.getId());           // 1  — לא השתנה
        System.out.println(Ticket.getCount());   // 4
    }
}

כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.

התרגיל הבא מחלקת נקודה
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון — כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות בדיקה חיצוני.