המשימה
בנה מחלקה בשם Ticket שמייצגת כרטיס בתור.
המחלקה תכלול:
• תכונה **סטטית** פרטית counter, שמתחילה מ-0 ומשותפת לכל הכרטיסים.
• תכונה פרטית רגילה id, ייחודית לכל כרטיס.
• בנאי בלי פרמטרים שמקדם את המונה ב-1 ומציב את ערכו כ-id של הכרטיס
החדש. הכרטיס הראשון מקבל 1, השני 2, וכן הלאה.
• פעולה מאחזרת ל-id.
• פעולה **סטטית** getCount שמחזירה כמה כרטיסים נוצרו עד כה.
הנחיות:
• תכונה סטטית שייכת למחלקה, לא לעצם. יש ממנה עותק אחד בלבד, וכל
העצמים רואים אותו.
• פעולה סטטית נקראת על שם המחלקה ולא על עצם: Ticket.getCount().
• פעולה סטטית אינה יכולה לגשת לתכונה שאינה סטטית — נסה ותראה מה
הקומפיילר אומר. זו הנקודה של התרגיל.
```ds:table
{"title":"מה קורה בכל יצירה","rows":[["יצירה","counter אחרי","id שהוקצה"],["ראשונה","1","1"],["שנייה","2","2"],["שלישית","3","3"]]}
```
קוד הפתיחה
using System;
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;
}
}
class Program {
static void Main() {
Console.WriteLine(Ticket.GetCount()); // 0
Ticket a = new Ticket();
Ticket b = new Ticket();
Ticket c = new Ticket();
Console.WriteLine(a.GetId()); // 1
Console.WriteLine(b.GetId()); // 2
Console.WriteLine(c.GetId()); // 3
Console.WriteLine(Ticket.GetCount()); // 3
Ticket d = new Ticket();
Console.WriteLine(d.GetId()); // 4
Console.WriteLine(a.GetId()); // 1 — לא השתנה
Console.WriteLine(Ticket.GetCount()); // 4
}
}
כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.