diff --git a/Car.java b/Car.java new file mode 100644 index 0000000..3b6e6bf --- /dev/null +++ b/Car.java @@ -0,0 +1,35 @@ +public class Car extends Vehicle { + + private final int seats; + + public Car(String make, String model, Engine engine, int seats) { + super(make, model, engine); + this.seats = seats; + } + + public int getSeats() { + return seats; + } + + public void doATurboBoost() { + speedInKmh *= 2; + System.out.println( + getMake() + + " " + + getModel() + + " macht einen Turboboost und beschleunigt auf " + + speedInKmh + + " km/h"); + } + + public String toString() { + return getMake() + + " " + + getModel() + + " (" + + getEngine().getDescription() + + ", " + + seats + + " Sitzplaetze)"; + } +} diff --git a/Engine.java b/Engine.java index ffc88a7..5f2aea9 100644 --- a/Engine.java +++ b/Engine.java @@ -4,7 +4,7 @@ public enum Engine { GAS("Gas"), ELECTRO("Elektro"); - private String description; + private final String description; Engine(String description) { this.description = description; diff --git a/Exercise.java b/Exercise.java index f3b80e5..8255262 100644 --- a/Exercise.java +++ b/Exercise.java @@ -3,10 +3,19 @@ public class Exercise { public static void main(String[] args) { System.out.println("Anzahl Fahrzeuge: " + Vehicle.getNumberOfVehicles()); - Vehicle vehicle1 = new Vehicle("Porsche", "911", Engine.ELECTRO); - Vehicle vehicle2 = new Vehicle("MAN", "TGX", Engine.DIESEL); - Vehicle vehicle3 = new Vehicle("Opel", "Zafira Life", Engine.DIESEL); + Car car1 = new Car("Porsche", "911", Engine.ELECTRO, 2); + Truck truck1 = new Truck("MAN", "TGX", Engine.DIESEL, 20); + Car car2 = new Car("Opel", "Zafira Life", Engine.DIESEL, 7); System.out.println("Anzahl Fahrzeuge: " + Vehicle.getNumberOfVehicles()); + + System.out.println(car1.toString()); + System.out.println(truck1.toString()); + System.out.println(car2.toString()); + + car1.accelerate(50); + truck1.transform(); + car1.doATurboBoost(); + truck1.transform(); } } diff --git a/Truck.java b/Truck.java new file mode 100644 index 0000000..ae110f6 --- /dev/null +++ b/Truck.java @@ -0,0 +1,32 @@ +public class Truck extends Vehicle { + + private final int cargo; + private boolean isTransformed; + + public Truck(String make, String model, Engine engine, int cargo) { + super(make, model, engine); + this.cargo = cargo; + } + + public int getCargo() { + return cargo; + } + + public boolean isTransformed() { + return isTransformed; + } + + public void transform() { + if (isTransformed) { + System.out.println( + getMake() + " " + getModel() + " verwandelt sich in einen Lastwagen zurueck"); + } else { + System.out.println(getMake() + " " + getModel() + " verwandelt sich in einen Autobot"); + } + isTransformed = !isTransformed; + } + + public String toString() { + return getMake() + " " + getModel() + " (" + getEngine().getDescription() + ", " + cargo + "t)"; + } +} diff --git a/Vehicle.java b/Vehicle.java index 238f0bf..216451f 100644 --- a/Vehicle.java +++ b/Vehicle.java @@ -2,7 +2,7 @@ public class Vehicle { private String make; private String model; - private double speedInKmh; + protected double speedInKmh; private Engine engine; private static int numberOfVehicles;