Skip to content

Commit f0b9a52

Browse files
committed
update exercise
1 parent f173003 commit f0b9a52

6 files changed

Lines changed: 59 additions & 40 deletions

File tree

Car.java

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
public class Car extends Vehicle {
22

3-
private int seats;
3+
private final int seats;
44

55
public Car(String make, String model, Engine engine, int seats) {
66
super(make, model, engine);
@@ -12,25 +12,24 @@ public int getSeats() {
1212
}
1313

1414
public void doATurboBoost() {
15-
speed *= 2;
15+
speedInKmh *= 2;
1616
System.out.println(
1717
getMake()
1818
+ " "
1919
+ getModel()
2020
+ " macht einen Turboboost und beschleunigt auf "
21-
+ speed
21+
+ speedInKmh
2222
+ " km/h");
2323
}
2424

25-
public void print() {
26-
System.out.println(
27-
getMake()
28-
+ " "
29-
+ getModel()
30-
+ " ("
31-
+ getEngine().getDescription()
32-
+ ", "
33-
+ seats
34-
+ " Sitzplaetze)");
25+
public String toString() {
26+
return getMake()
27+
+ " "
28+
+ getModel()
29+
+ " ("
30+
+ getEngine().getDescription()
31+
+ ", "
32+
+ seats
33+
+ " Sitzplaetze)";
3534
}
3635
}

Engine.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ public enum Engine {
44
GAS("Gas"),
55
ELECTRO("Elektro");
66

7-
private String description;
7+
private final String description;
88

99
Engine(String description) {
1010
this.description = description;

Exercise.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,20 @@ public static void main(String[] args) {
77
Truck truck1 = new Truck("MAN", "TGX", Engine.DIESEL, 20);
88
Car car2 = new Car("Opel", "Zafira Life", Engine.DIESEL, 7);
99

10+
System.out.println("Anzahl Fahrzeuge: " + Vehicle.getNumberOfVehicles());
11+
12+
System.out.println(car1.toString());
13+
System.out.println(truck1.toString());
14+
System.out.println(car2.toString());
15+
16+
car1.accelerate(50);
17+
truck1.transform();
18+
car1.doATurboBoost();
19+
truck1.transform();
1020
rental.addVehicle(car1);
1121
rental.addVehicle(truck1);
1222
rental.addVehicle(car2);
1323

14-
rental.print();
24+
System.out.println(rental.toString());
1525
}
1626
}

Rental.java

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,22 @@
22

33
public class Rental {
44

5-
private String name;
6-
private ArrayList<Vehicle> vehicles;
5+
private final String name;
6+
private final ArrayList<Vehicle> vehicles;
77

88
public Rental(String name) {
99
this.name = name;
1010
vehicles = new ArrayList<>();
1111
}
1212

13+
public String getName() {
14+
return name;
15+
}
16+
17+
public ArrayList<Vehicle> getVehicles() {
18+
return vehicles;
19+
}
20+
1321
public void addVehicle(Vehicle vehicle) {
1422
vehicles.add(vehicle);
1523
}
@@ -20,11 +28,11 @@ public void addAllVehicles(Vehicle... vehicles) {
2028
}
2129
}
2230

23-
public void print() {
24-
System.out.println(name);
25-
System.out.println("Unsere Fahrzeuge: ");
26-
for (Vehicle v : vehicles) {
27-
v.print();
31+
public String toString() {
32+
String result = name + "\n" + "Unsere Fahrzeuge: \n";
33+
for (Vehicle vehicle : vehicles) {
34+
result += vehicle.toString() + "\n";
2835
}
36+
return result;
2937
}
3038
}

Truck.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
public class Truck extends Vehicle {
22

3-
private int cargo;
3+
private final int cargo;
44
private boolean isTransformed;
55

66
public Truck(String make, String model, Engine engine, int cargo) {
@@ -18,17 +18,15 @@ public boolean isTransformed() {
1818

1919
public void transform() {
2020
if (isTransformed) {
21-
isTransformed = false;
2221
System.out.println(
2322
getMake() + " " + getModel() + " verwandelt sich in einen Lastwagen zurueck");
2423
} else {
25-
isTransformed = true;
2624
System.out.println(getMake() + " " + getModel() + " verwandelt sich in einen Autobot");
2725
}
26+
isTransformed = !isTransformed;
2827
}
2928

30-
public void print() {
31-
System.out.println(
32-
getMake() + " " + getModel() + " (" + getEngine().getDescription() + ", " + cargo + "t)");
29+
public String toString() {
30+
return getMake() + " " + getModel() + " (" + getEngine().getDescription() + ", " + cargo + "t)";
3331
}
3432
}

Vehicle.java

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@ public class Vehicle {
22

33
private String make;
44
private String model;
5+
protected double speedInKmh;
56
private Engine engine;
6-
protected double speed;
77
private static int numberOfVehicles;
88

99
public Vehicle(String make, String model, Engine engine) {
1010
this.make = make;
1111
this.model = model;
12+
Vehicle.numberOfVehicles++;
1213
this.engine = engine;
13-
numberOfVehicles++;
1414
}
1515

1616
public String getMake() {
@@ -25,21 +25,25 @@ public Engine getEngine() {
2525
return engine;
2626
}
2727

28-
public static int getNumberOfVehicles() {
29-
return numberOfVehicles;
28+
public double getSpeedInKmh() {
29+
return speedInKmh;
30+
}
31+
32+
public void accelerate(int valueInKmh) {
33+
speedInKmh += valueInKmh;
34+
System.out.println(toString() + " beschleunigt auf " + speedInKmh + "km/h");
3035
}
3136

32-
public void accelerate(int value) {
33-
speed += value;
34-
System.out.println(make + " " + model + " beschleunigt auf " + speed + "km/h");
37+
public void brake(int valueInKmh) {
38+
speedInKmh -= valueInKmh;
39+
System.out.println(toString() + " bremst auf " + speedInKmh + "km/h ab");
3540
}
3641

37-
public void brake(int value) {
38-
speed -= value;
39-
System.out.println(make + " " + model + " bremst auf " + speed + "km/h ab");
42+
public String toString() {
43+
return make + " " + model;
4044
}
4145

42-
public void print() {
43-
System.out.println(make + " " + model + " (" + engine.getDescription() + ")");
46+
public static int getNumberOfVehicles() {
47+
return Vehicle.numberOfVehicles;
4448
}
4549
}

0 commit comments

Comments
 (0)