טוען...
טוען...
בגן החיות "חיים בשלום" פותחה מערכת ממוחשבת ובה שומרים נתונים על בעלי החיים שבגן. המערכת כוללת את המחלקות האלה: בעל חיים – Animal, ציפור – Bird, תוכי – Parrot, דג – Fish, נחש – Snake.
נתון חלק ממבנה המחלקות במערכת הממוחשבת:
java1public class Animal {
2 private String color;
3 private int weight;
4 public Animal (String color, int weight)
5 {
6 this.color = color;
7 this.weight = weight;
8 }
9 public String toString() {
10 return "My color is " + this.color + "! And I weigh " + weight + " kilos!";
11 }
12}
13
14public class Bird {
15 private String color;
16 private int weight;
17 private boolean isFlying;
18 public void zoo () {
19 System.out.println ("Hello");
20 }
21}
22
23public class Parrot {
24 private String color;
25 private int weight;
26 private boolean isFlying;
27 private boolean isTalking;
28 public void zoo () {
29 System.out.println ("Hello");
30 }
31}
32
33public class Fish {
34 private String color;
35 private int weight;
36 private String waterType; // דג ים/דג מים מתוקים
37}
38
39public class Snake {
40 private String color;
41 private int weight;
42 private int length;
43 private boolean isVenomous; // האם הנחש ארסי?
44}
הניחו שיש פעולות get ו־set לתכונות המחלקות.
כתבו מחדש את הכותרות, התכונות והפעולות של המחלקות: Bird, Parrot, Fish ו־Snake, לפי עקרונות תכנות מונחה עצמים (אין לשנות את המחלקה Animal). בסעיף זה אין צורך לכתוב פעולות בונות. הניחו שהפעולות get ו־set קיימות.
נוסף על כך, סרטטו תרשים הייררכייה בין כל המחלקות. יש לסמן ירושה באמצעות החץ:
נתונה המחלקה Tester:
java1public class Tester {
2 public static void main (String[] args) {
3 Animal[] animals = new Animal [5];
4 animals [0] = new Bird ("white", 4, false);
5 animals [1] = new Fish ("blue", 3, "sweet water");
6 animals [2] = new Parrot ("brown", 12, true, true);
7 animals [3] = new Snake ("gray", 2, 6, true);
8 animals [4] = new Snake ("black", 3, 4, false);
9 //***
10 }
11}
הוסיפו פעולות בונות למחלקות Bird, Parrot, Fish ו־Snake, המאתחלות את תכונות המחלקות (כך שהפעולה main תרוץ ללא שגיאות).
⚠ הערה — אילוץ מחייב
אין לשנות את הפעולה הבונה הנתונה של
Animal.
(1) בפעולה main נוסף קטע הקוד שלפניכם (במקום המסומן ב־***):
java1for (int i = 0; i < animals.length; i++) {
2 System.out.println (animals[i]); }
קטע הקוד תקין ומדפיס את הפלט שלפניכם:
I'm a bird! My color is white! And I weigh 4 kilos!
My color is blue! And I weigh 3 kilos!
I'm a parrot! My color is brown!
I'm a snake! I'm venomous, be careful! My color is gray! And I weigh 2 kilos!
I'm a snake! I'm not venomous! My color is black! And I weigh 3 kilos!הוסיפו את הפעולה toString במחלקות (רק היכן שיש צורך) לפי עקרונות תכנות מונחה עצמים, כך שהפלט יהיה מתאים.
⚠ הערה — אילוץ מחייב
אין לשנות את הפעולה
toStringבמחלקהAnimal. תשובה שבה יהיה שינוי לא תזוכה בנקודות.
(2) במחלקה Tester נוספה הפעולה שלפניכם:
java1public static void hello (Animal [] arr) }
2 for (int i = 0; i < arr.length; i++) {
3 arr[i].zoo(); }
4}
אם הפעולה תקינה, כתבו את הפלט שלה עבור המערך animals (הנתון לעיל), ואם הפעולה לא תקינה – תקנו אותה (כך שהקריאה ל־zoo בתוך הלולאה תהיה תקינה) וכתבו את הפלט עבור המערך animals.
⚠ הערות — אילוץ מחייב
- אין לשנות את המחלקות עצמן. תשובה שבה יהיה שינוי במחלקות לא תזוכה בנקודות.
- הפעולה צריכה לרוץ ללא שגיאות עבור כל מערך מטיפוס
Animal.
בגן החיות "חיים בשלום" פותחה מערכת ממוחשבת ובה שומרים נתונים על בעלי החיים שבגן. המערכת כוללת את המחלקות האלה: בעל חיים – Animal, ציפור – Bird, תוכי – Parrot, דג – Fish, נחש – Snake.
נתון חלק ממבנה המחלקות במערכת הממוחשבת:
java1public class Animal {
2 private String color;
3 private int weight;
4 public Animal (String color, int weight)
5 {
6 this.color = color;
7 this.weight = weight;
8 }
9 public String toString() {
10 return "My color is " + this.color + "! And I weigh " + weight + " kilos!";
11 }
12}
13
14public class Bird {
15 private String color;
16 private int weight;
17 private boolean isFlying;
18 public void zoo () {
19 System.out.println ("Hello");
20 }
21}
22
23public class Parrot {
24 private String color;
25 private int weight;
26 private boolean isFlying;
27 private boolean isTalking;
28 public void zoo () {
29 System.out.println ("Hello");
30 }
31}
32
33public class Fish {
34 private String color;
35 private int weight;
36 private String waterType; // דג ים/דג מים מתוקים
37}
38
39public class Snake {
40 private String color;
41 private int weight;
42 private int length;
43 private boolean isVenomous; // האם הנחש ארסי?
44}
הניחו שיש פעולות get ו־set לתכונות המחלקות.
כתבו מחדש את הכותרות, התכונות והפעולות של המחלקות: Bird, Parrot, Fish ו־Snake, לפי עקרונות תכנות מונחה עצמים (אין לשנות את המחלקה Animal). בסעיף זה אין צורך לכתוב פעולות בונות. הניחו שהפעולות get ו־set קיימות.
נוסף על כך, סרטטו תרשים הייררכייה בין כל המחלקות. יש לסמן ירושה באמצעות החץ:
נתונה המחלקה Tester:
java1public class Tester {
2 public static void main (String[] args) {
3 Animal[] animals = new Animal [5];
4 animals [0] = new Bird ("white", 4, false);
5 animals [1] = new Fish ("blue", 3, "sweet water");
6 animals [2] = new Parrot ("brown", 12, true, true);
7 animals [3] = new Snake ("gray", 2, 6, true);
8 animals [4] = new Snake ("black", 3, 4, false);
9 //***
10 }
11}
הוסיפו פעולות בונות למחלקות Bird, Parrot, Fish ו־Snake, המאתחלות את תכונות המחלקות (כך שהפעולה main תרוץ ללא שגיאות).
⚠ הערה — אילוץ מחייב
אין לשנות את הפעולה הבונה הנתונה של
Animal.
(1) בפעולה main נוסף קטע הקוד שלפניכם (במקום המסומן ב־***):
java1for (int i = 0; i < animals.length; i++) {
2 System.out.println (animals[i]); }
קטע הקוד תקין ומדפיס את הפלט שלפניכם:
I'm a bird! My color is white! And I weigh 4 kilos!
My color is blue! And I weigh 3 kilos!
I'm a parrot! My color is brown!
I'm a snake! I'm venomous, be careful! My color is gray! And I weigh 2 kilos!
I'm a snake! I'm not venomous! My color is black! And I weigh 3 kilos!הוסיפו את הפעולה toString במחלקות (רק היכן שיש צורך) לפי עקרונות תכנות מונחה עצמים, כך שהפלט יהיה מתאים.
⚠ הערה — אילוץ מחייב
אין לשנות את הפעולה
toStringבמחלקהAnimal. תשובה שבה יהיה שינוי לא תזוכה בנקודות.
(2) במחלקה Tester נוספה הפעולה שלפניכם:
java1public static void hello (Animal [] arr) }
2 for (int i = 0; i < arr.length; i++) {
3 arr[i].zoo(); }
4}
אם הפעולה תקינה, כתבו את הפלט שלה עבור המערך animals (הנתון לעיל), ואם הפעולה לא תקינה – תקנו אותה (כך שהקריאה ל־zoo בתוך הלולאה תהיה תקינה) וכתבו את הפלט עבור המערך animals.
⚠ הערות — אילוץ מחייב
- אין לשנות את המחלקות עצמן. תשובה שבה יהיה שינוי במחלקות לא תזוכה בנקודות.
- הפעולה צריכה לרוץ ללא שגיאות עבור כל מערך מטיפוס
Animal.