המחלקה One כוללת שדה סטטי num (משותף לכל העצמים), שני בנאים עמוסים, ופעולת add(One) הניתנת לדריסה. Two יורשת מ-One, מוסיפה שדה y, שני בנאים משלה (הקוראים ל-super/base), מגדירה mul() חדשה (בלי פרמטר - לא דריסה של mul(int)) ודורסת את add(One). סעיף א עוקב אחר 5 קריאות הבנאי הראשונות בפעולת main/Main; בכל אחד מ-10 סעיפי ב מציבים שורת קוד עצמאית אחת במקום ה-// ***, וקובעים אם היא תקינה - ואם כן, מה הפלט הנוסף.
המחלקה One כוללת שדה סטטי num (משותף לכל העצמים), שני בנאים עמוסים, ופעולת add(One) הניתנת לדריסה. Two יורשת מ-One, מוסיפה שדה y, שני בנאים משלה (הקוראים ל-super/base), מגדירה mul() חדשה (בלי פרמטר - לא דריסה של mul(int)) ודורסת את add(One). סעיף א עוקב אחר 5 קריאות הבנאי הראשונות בפעולת main/Main; בכל אחד מ-10 סעיפי ב מציבים שורת קוד עצמאית אחת במקום ה-// ***, וקובעים אם היא תקינה - ואם כן, מה הפלט הנוסף.
public class One
{
private static int num = 0;
protected int x;
public One(int n)
{
this.x = n;
num += n;
Console.WriteLine("One 1");
}
public One(int n1, int n2)
{
this.x = n1 + n2;
num += n1;
Console.WriteLine("One 2");
}
public int GetNum()
{
return num;
}
public int GetX()
{
return x;
}
public int Mul(int n)
{
return this.x * n;
}
public virtual void Add(One other)
{
this.x += other.x;
Console.WriteLine("x = " + this.x);
}
}
public class Two : One
{
private int y;
public Two() : base(10)
{
this.y = 12;
}
public Two(int num) : base(num/2)
{
this.y = num;
Console.WriteLine("Second");
}
public int Mul()
{
return this.x * this.y;
}
public override void Add(One other)
{
if (other is Two)
this.y += ((Two)other).y;
Console.WriteLine("y = " + this.y);
}
}
public class Tester
{
public static void Main(string[] args)
{
One one1 = new One(1);
One one2 = new One(2, 3);
One oneTwo = new Two(4);
Two two1 = new Two();
Two two2 = new Two(6);
// ***
}
}
ציירו את העצמים שנוצרו בפעולת main/Main, וכתבו את הפלט של הפעולה (עד לשורה // ***).
`public class One { private static int num = 0; protected int x;
public One(int n)
{
this.x = n;
num += n;
Console.WriteLine("One 1");
}
public One(int n1, int n2)
{
this.x = n1 + n2;
num += n1;
Console.WriteLine("One 2");
}
public int GetNum()
{
return num;
}
public int GetX()
{
return x;
}
public int Mul(int n)
{
return this.x * n;
}
public virtual void Add(One other)
{
this.x += other.x;
Console.WriteLine("x = " + this.x);
}
}
public class Two : One { private int y; public Two() : base(10) { this.y = 12; }
public Two(int num) : base(num/2)
{
this.y = num;
Console.WriteLine("Second");
}
public int Mul()
{
return this.x * this.y;
}
public override void Add(One other)
{
if (other is Two)
this.y += ((Two)other).y;
Console.WriteLine("y = " + this.y);
}
}
public class Tester { public static void Main(string[] args) { One one1 = new One(1); One one2 = new One(2, 3); One oneTwo = new Two(4); Two two1 = new Two(); Two two2 = new Two(6); // *** } }`
הציבו את הפקודה הבאה במקום המצוין לעיל ב-***, במקום פעולת main/Main. כתבו במחברת את מספר הפקודה וציינו אם הקוד תקין או לא תקין. אם הקוד תקין -- כתבו את הפלט, ואם הוא אינו תקין, הסבירו מדוע. Java: System.out.println ("Total = " + one1.getNum()); C#: Console.WriteLine ("Total = " + one1.GetNum());
הציבו את הפקודה הבאה במקום המצוין לעיל ב-***, במקום פעולת main/Main. כתבו במחברת את מספר הפקודה וציינו אם הקוד תקין או לא תקין. אם הקוד תקין -- כתבו את הפלט, ואם הוא אינו תקין, הסבירו מדוע. Java: System.out.println ("Total = " + two2.getNum()); C#: Console.WriteLine ("Total = " + two2.GetNum());
הציבו את הפקודה הבאה במקום המצוין לעיל ב-***, במקום פעולת main/Main. כתבו במחברת את מספר הפקודה וציינו אם הקוד תקין או לא תקין. אם הקוד תקין -- כתבו את הפלט, ואם הוא אינו תקין, הסבירו מדוע. Java: System.out.println ("mul = " + one1.mul(1)); C#: Console.WriteLine ("Mul = " + one1.Mul(1));
הציבו את הפקודה הבאה במקום המצוין לעיל ב-***, במקום פעולת main/Main. כתבו במחברת את מספר הפקודה וציינו אם הקוד תקין או לא תקין. אם הקוד תקין -- כתבו את הפלט, ואם הוא אינו תקין, הסבירו מדוע. Java: System.out.println ("mul = " + oneTwo.mul()); C#: Console.WriteLine ("Mul = " + oneTwo.Mul());
הציבו את הפקודה הבאה במקום המצוין לעיל ב-***, במקום פעולת main/Main. כתבו במחברת את מספר הפקודה וציינו אם הקוד תקין או לא תקין. אם הקוד תקין -- כתבו את הפלט, ואם הוא אינו תקין, הסבירו מדוע. Java: System.out.println ("mul = " + two1.mul()); C#: Console.WriteLine ("Mul = " + two1.Mul());
הציבו את הפקודה הבאה במקום המצוין לעיל ב-***, במקום פעולת main/Main. כתבו במחברת את מספר הפקודה וציינו אם הקוד תקין או לא תקין. אם הקוד תקין -- כתבו את הפלט, ואם הוא אינו תקין, הסבירו מדוע. Java: one1.add(oneTwo); C#: one1.Add(oneTwo);
הציבו את הפקודה הבאה במקום המצוין לעיל ב-***, במקום פעולת main/Main. כתבו במחברת את מספר הפקודה וציינו אם הקוד תקין או לא תקין. אם הקוד תקין -- כתבו את הפלט, ואם הוא אינו תקין, הסבירו מדוע. Java: two1.add(oneTwo); C#: two1.Add(oneTwo);
הציבו את הפקודה הבאה במקום המצוין לעיל ב-***, במקום פעולת main/Main. כתבו במחברת את מספר הפקודה וציינו אם הקוד תקין או לא תקין. אם הקוד תקין -- כתבו את הפלט, ואם הוא אינו תקין, הסבירו מדוע. Java: ((Two)one1).mul(); C#: ((Two)one1).Mul();
הציבו את הפקודה הבאה במקום המצוין לעיל ב-***, במקום פעולת main/Main. כתבו במחברת את מספר הפקודה וציינו אם הקוד תקין או לא תקין. אם הקוד תקין -- כתבו את הפלט, ואם הוא אינו תקין, הסבירו מדוע. Java: two1 = new One(1,2); C#: two1 = new One(1,2);
הציבו את הפקודה הבאה במקום המצוין לעיל ב-***, במקום פעולת main/Main. כתבו במחברת את מספר הפקודה וציינו אם הקוד תקין או לא תקין. אם הקוד תקין -- כתבו את הפלט, ואם הוא אינו תקין, הסבירו מדוע. Java: ((One)two1).mul(1); C#: ((One)two1).Mul(1);
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.