טוען...
טוען...
לפניכם שלושה סעיפים א–ג שאין קשר ביניהם. ענו על שלושת הסעיפים.
לפניכם המחלקה Father ללא מימוש הפעולות הבונות, והמחלקה Son ללא מימוש הפעולות הבונות ופעולת toString.
java1public class Father {
2 private static int st = 0;
3 protected int num;
4 public Father () {…}
5 public Father (int num) {…}
6 public String toString() {return "st=" + st + ", num=" + num;}
7}
8
9------------------------------------------------------------
10
11public class Son extends Father {
12 private char ch;
13 public Son (int num, char ch){…}
14 public Son (int num) {…}
15 public String toString() {... }
16}
לפניכם קטע קוד והפלט שהתקבל בעקבות הרצת קטע הקוד:
| הקוד | הפלט |
|---|---|
Father x1 = new Father (); | |
System.out.println (x1); //1 | st=1, num=9 //1 |
Father x2 = new Father (3); | |
System.out.println (x2); //2 | st=1, num=3 //2 |
Father x3 = new Son (5, 'A'); | |
System.out.println (x3); //3 | st=2, num=5, ch=A //3 |
Father x4 = new Son (7); | |
System.out.println (x4); //4 | st=2, num=7, ch=Z //4 |
ממשו את הפעולות הבונות במחלקה Father ובמחלקה Son, ואת הפעולה toString במחלקה Son, בהתאם לעקרונות תכנות מונחה עצמים, כך שיתקבל הפלט הנתון.
אין להוסיף פעולות נוספות למחלקות. תשובה הכוללת פעולות נוספות במחלקות, לא תזוכה בנקודות.
נתונות המחלקות A, B, C, D והפעולה main במחלקה Tester, שרצה באופן תקין.
java1public class Tester {
2 public static void main(String[] args) {
3 C c1 = new B();
4 A a1 = new C();
5 A a2 = new B();
6 C c2 = new D();
7 }
8}
(1) לפניכם שישה תרשימי הייררכייה 1-6 (החץ מסמן יחס ירושה). בנוגע לכל אחד מהם, ציינו אם ייתכן או לא ייתכן שהוא מתאר את יחס ההייררכייה בין המחלקות A, B, C, D. אם ציינתם שלא ייתכן, נמקו מדוע.
(2) בסוף הפעולה main נוספו שורות הקוד שלהלן, שרצות באופן תקין:
java1A a3 = new B();
2D d1 = (D)a3;
בעקבות זאת, האם תשתנה תשובתכם בתת־סעיף ב(1)? נמקו את תשובתכם.
נתונה המחלקה BBB, היורשת ממחלקה AAA:
java1public class BBB extends AAA {
2 private char ch;
3 public BBB (int num, char ch) {
4 super (num);
5 this.ch = ch;
6 }
7 public BBB (char ch) {this.ch = ch; }
8 public int gg (int val) {return super.gg(val) + num; }
9 public int mm () {return AAA.c + 2; }
10 public boolean nn () {return this.mm (10); }
11}
כתבו במחלקה AAA את תכונות המחלקה (כולל הרשאות הגישה) ואת הכותרות של הפעולות הנדרשות כדי שהמחלקה BBB תהיה תקינה, בהתאם לעקרונות תכנות מונחה עצמים.
אין צורך לממש את הפעולות שאת הכותרות שלהן הוספתם במחלקה AAA. אין לשנות את הקוד של המחלקה BBB.
לפניכם שלושה סעיפים א–ג שאין קשר ביניהם. ענו על שלושת הסעיפים.
לפניכם המחלקה Father ללא מימוש הפעולות הבונות, והמחלקה Son ללא מימוש הפעולות הבונות ופעולת toString.
java1public class Father {
2 private static int st = 0;
3 protected int num;
4 public Father () {…}
5 public Father (int num) {…}
6 public String toString() {return "st=" + st + ", num=" + num;}
7}
8
9------------------------------------------------------------
10
11public class Son extends Father {
12 private char ch;
13 public Son (int num, char ch){…}
14 public Son (int num) {…}
15 public String toString() {... }
16}
לפניכם קטע קוד והפלט שהתקבל בעקבות הרצת קטע הקוד:
| הקוד | הפלט |
|---|---|
Father x1 = new Father (); | |
System.out.println (x1); //1 | st=1, num=9 //1 |
Father x2 = new Father (3); | |
System.out.println (x2); //2 | st=1, num=3 //2 |
Father x3 = new Son (5, 'A'); | |
System.out.println (x3); //3 | st=2, num=5, ch=A //3 |
Father x4 = new Son (7); | |
System.out.println (x4); //4 | st=2, num=7, ch=Z //4 |
ממשו את הפעולות הבונות במחלקה Father ובמחלקה Son, ואת הפעולה toString במחלקה Son, בהתאם לעקרונות תכנות מונחה עצמים, כך שיתקבל הפלט הנתון.
אין להוסיף פעולות נוספות למחלקות. תשובה הכוללת פעולות נוספות במחלקות, לא תזוכה בנקודות.
נתונות המחלקות A, B, C, D והפעולה main במחלקה Tester, שרצה באופן תקין.
java1public class Tester {
2 public static void main(String[] args) {
3 C c1 = new B();
4 A a1 = new C();
5 A a2 = new B();
6 C c2 = new D();
7 }
8}
(1) לפניכם שישה תרשימי הייררכייה 1-6 (החץ מסמן יחס ירושה). בנוגע לכל אחד מהם, ציינו אם ייתכן או לא ייתכן שהוא מתאר את יחס ההייררכייה בין המחלקות A, B, C, D. אם ציינתם שלא ייתכן, נמקו מדוע.
(2) בסוף הפעולה main נוספו שורות הקוד שלהלן, שרצות באופן תקין:
java1A a3 = new B();
2D d1 = (D)a3;
בעקבות זאת, האם תשתנה תשובתכם בתת־סעיף ב(1)? נמקו את תשובתכם.
נתונה המחלקה BBB, היורשת ממחלקה AAA:
java1public class BBB extends AAA {
2 private char ch;
3 public BBB (int num, char ch) {
4 super (num);
5 this.ch = ch;
6 }
7 public BBB (char ch) {this.ch = ch; }
8 public int gg (int val) {return super.gg(val) + num; }
9 public int mm () {return AAA.c + 2; }
10 public boolean nn () {return this.mm (10); }
11}
כתבו במחלקה AAA את תכונות המחלקה (כולל הרשאות הגישה) ואת הכותרות של הפעולות הנדרשות כדי שהמחלקה BBB תהיה תקינה, בהתאם לעקרונות תכנות מונחה עצמים.
אין צורך לממש את הפעולות שאת הכותרות שלהן הוספתם במחלקה AAA. אין לשנות את הקוד של המחלקה BBB.