לפניכם חלק מפרויקט העוסק בכלֵי תחבורה, הכולל את המחלקות האלה:
| מחלקה | תפקיד |
|---|---|
Vehicle | מייצגת כלי תחבורה |
Train | מייצגת רכבת שהיא כלי תחבורה |
Boat | מייצגת סירה שהיא כלי תחבורה |
Airplane | מייצגת מטוס שהוא כלי תחבורה |
TransportationCompany | מייצגת חברה שיש לה כלֵי תחבורה מסוגים שונים |
1public class Vehicle {
2 private String type; // מיקום (יבשה / מים / אוויר)
3 private String way; // סוג הדרך (כביש / מסילה / נהר / ...)
4 private int maxSpeed; // מהירות מקסימלית
5
6 public Vehicle(String type, String way, int maxSpeed) {
7 this.type = type;
8 this.way = way;
9 this.maxSpeed = maxSpeed;
10 }
11}
12
13public class Train extends Vehicle {
14 private int numOfCarriages; // מספר הקרונות
15
16 public Train(int maxSpeed, int numOfCarriages) {
17 super("land", "tracks", maxSpeed);
18 this.numOfCarriages = numOfCarriages;
19 }
20 // מגדילה ב-n את מספר הקרונות ברכבת
21 public void incNumOfCarriages(int n) {
22 this.numOfCarriages = this.numOfCarriages + n;
23 }
24}
25
26public class Boat extends Vehicle {
27 public Boat(String way, int maxSpeed) {
28 super("water", way, maxSpeed);
29 }
30}
31
32public class Airplane extends Vehicle {
33 private int maxHeight; // גובה טיסה מקסימלי
34
35 public Airplane(int maxSpeed, int maxHeight) {
36 super("sky", "air", maxSpeed);
37 this.maxHeight = maxHeight;
38 }
39}
40
41public class TransportationCompany {
42 private Vehicle[] vehicles = new Vehicle[50]; // מערך כלֵי התחבורה בחברה
43 private int counter = 0; // מספר כלֵי התחבורה שיש בפועל
44
45 public TransportationCompany() { }
46
47 // מוסיפה כלִי תחבורה למערך כלֵי התחבורה של החברה. הנח שיש מקום להוסיף.
48 public void addVehicle(Vehicle v) {
49 this.vehicles[counter] = v;
50 this.counter++;
51 }
52}ממשו מחלקה ראשית Program ובה פעולה ראשית, שתבצע את המשימות האלה:
TransportationCompany — הנקרא company1.company1.בחרו לתכונות ערכים כרצונכם.
במחלקה TransportationCompany הוגדרה הפעולה:
csharp1public void Display() 2{ 3 for (int i = 0; i < this.counter; i++) 4 { 5 Console.WriteLine((i + 1) + ":" + this.vehicles[i]); 6 } 7}
java1public void display() 2{ 3 for (int i = 0; i < this.counter; i++) 4 { 5 System.out.println((i + 1) + ":" + this.vehicles[i]); 6 } 7}
ממשו פעולות שיאפשרו ביצוע תקין של הפעולה, כך שבעבור כל כלִי תחבורה יודפסו כל התכונות שלו. הגדירו את הפעולות באופן המתאים ביותר לעקרונות של תכנות מונחה עצמים (הכמסה — encapsulation, הורשה — inheritance, פולימורפיזם — polymorphism).
בעבור כל פעולה שאתם מממשים, רִשמו לאיזו מחלקה היא שייכת. אין לשנות את הפעולה הנתונה.
ממשו פעולה שתקבל מספר שלם n ותוסיף n קרונות לכל הרכבות ששייכות לחברה שיש לה כלֵי תחבורה מסוגים שונים. תעדו את הפעולה, ורִשמו באיזו מחלקה יש להגדיר אותה. אין לשנות את הפעולות הקיימות בפרויקט.
לפניכם חלק מפרויקט העוסק בכלֵי תחבורה, הכולל את המחלקות האלה:
| מחלקה | תפקיד |
|---|---|
Vehicle | מייצגת כלי תחבורה |
Train | מייצגת רכבת שהיא כלי תחבורה |
Boat | מייצגת סירה שהיא כלי תחבורה |
Airplane | מייצגת מטוס שהוא כלי תחבורה |
TransportationCompany | מייצגת חברה שיש לה כלֵי תחבורה מסוגים שונים |
1public class Vehicle {
2 private String type; // מיקום (יבשה / מים / אוויר)
3 private String way; // סוג הדרך (כביש / מסילה / נהר / ...)
4 private int maxSpeed; // מהירות מקסימלית
5
6 public Vehicle(String type, String way, int maxSpeed) {
7 this.type = type;
8 this.way = way;
9 this.maxSpeed = maxSpeed;
10 }
11}
12
13public class Train extends Vehicle {
14 private int numOfCarriages; // מספר הקרונות
15
16 public Train(int maxSpeed, int numOfCarriages) {
17 super("land", "tracks", maxSpeed);
18 this.numOfCarriages = numOfCarriages;
19 }
20 // מגדילה ב-n את מספר הקרונות ברכבת
21 public void incNumOfCarriages(int n) {
22 this.numOfCarriages = this.numOfCarriages + n;
23 }
24}
25
26public class Boat extends Vehicle {
27 public Boat(String way, int maxSpeed) {
28 super("water", way, maxSpeed);
29 }
30}
31
32public class Airplane extends Vehicle {
33 private int maxHeight; // גובה טיסה מקסימלי
34
35 public Airplane(int maxSpeed, int maxHeight) {
36 super("sky", "air", maxSpeed);
37 this.maxHeight = maxHeight;
38 }
39}
40
41public class TransportationCompany {
42 private Vehicle[] vehicles = new Vehicle[50]; // מערך כלֵי התחבורה בחברה
43 private int counter = 0; // מספר כלֵי התחבורה שיש בפועל
44
45 public TransportationCompany() { }
46
47 // מוסיפה כלִי תחבורה למערך כלֵי התחבורה של החברה. הנח שיש מקום להוסיף.
48 public void addVehicle(Vehicle v) {
49 this.vehicles[counter] = v;
50 this.counter++;
51 }
52}ממשו מחלקה ראשית Program ובה פעולה ראשית, שתבצע את המשימות האלה:
TransportationCompany — הנקרא company1.company1.בחרו לתכונות ערכים כרצונכם.
במחלקה TransportationCompany הוגדרה הפעולה:
csharp1public void Display() 2{ 3 for (int i = 0; i < this.counter; i++) 4 { 5 Console.WriteLine((i + 1) + ":" + this.vehicles[i]); 6 } 7}
java1public void display() 2{ 3 for (int i = 0; i < this.counter; i++) 4 { 5 System.out.println((i + 1) + ":" + this.vehicles[i]); 6 } 7}
ממשו פעולות שיאפשרו ביצוע תקין של הפעולה, כך שבעבור כל כלִי תחבורה יודפסו כל התכונות שלו. הגדירו את הפעולות באופן המתאים ביותר לעקרונות של תכנות מונחה עצמים (הכמסה — encapsulation, הורשה — inheritance, פולימורפיזם — polymorphism).
בעבור כל פעולה שאתם מממשים, רִשמו לאיזו מחלקה היא שייכת. אין לשנות את הפעולה הנתונה.
ממשו פעולה שתקבל מספר שלם n ותוסיף n קרונות לכל הרכבות ששייכות לחברה שיש לה כלֵי תחבורה מסוגים שונים. תעדו את הפעולה, ורִשמו באיזו מחלקה יש להגדיר אותה. אין לשנות את הפעולות הקיימות בפרויקט.