לפניכם הכותרות של מחלקות Two, One והתכונות שלהן והמחלקה Test הכוללת פעולה ראשית.
לפניכם הכותרות של מחלקות Two, One והתכונות שלהן והמחלקה Test הכוללת פעולה ראשית.
public class One
{
protected int val;
....
}
public class Two extends One
{
private String s;
private One p;
...
}
public class Test
{
public static void main(String[] args)
{
One [] arr = new One [5];
arr[0] = new One (25);
arr[1] = new One ();
arr[2] = new Two ();
arr[3] = new Two (15, arr[0]);
arr[4] = new Two (2, "CCC", arr[1]);
}
}
הרצת הפעולה יוצרת את העצמים הבאים (memory diagram): idx0=One{val=25}, idx1=One{val=10}, idx2=Two{val=10,s="AAA",p=null}, idx3=Two{val=15,s="CCC",p=•}, idx4=Two{val=2,s="CCC",p=•}. כתבו במחלקות One ו-Two את הפעולות הבונות (constructors) הנדרשות לשם הרצת הפעולה הראשית כך שיתקבלו העצמים המתוארים. אין להניח שקיימות פעולות בונות אחרות פעולות או להוסיף פעולות נוספות!
idx0: מחלקה: One
val: 25
idx1: מחלקה: One
val: 10
idx2: מחלקה: Two
s: AAA
idx3: מחלקה: Two
val: 15
s: CCC
p: -> idx0 (One{val=25})
idx4: מחלקה: Two
val: 2
p: -> (חץ בתרשים)
עצם העזר שבתרשים: One{val=25}
כתבו פעולה המקבלת מערך arr של עצמים מסוג One ומחזירה מערך חדש הכולל עצמים מסוג Two אשר נמצאים ב-arr. אם במערך arr אין עצמים מסוג Two, הפעולה תחזיר null.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.