From 2547e8eef1b5c0dd4f65627dd48ba9989731be90 Mon Sep 17 00:00:00 2001 From: Matin Date: Tue, 28 Apr 2026 10:07:50 +0430 Subject: [PATCH] =?UTF-8?q?matin=20mortazavi=20/=20=20I=20debugged=20the?= =?UTF-8?q?=20code.=20The=20issue=20was=20that=20it=20couldn=E2=80=99t=20r?= =?UTF-8?q?ecognize=20the=20file=20paths?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/{main/java => }/org/Main.java | 44 +++++++++++++++++++ .../java => }/org/behavior/Chargeable.java | 0 .../java => }/org/behavior/Refuelable.java | 0 .../java => }/org/behavior/Serviceable.java | 0 src/{main/java => }/org/model/Car.java | 9 ++-- .../java => }/org/model/ElectricCar.java | 4 +- src/{main/java => }/org/model/GasCar.java | 6 +++ src/{main/java => }/org/model/HybridCar.java | 8 ++++ src/{main/java => }/org/model/SportsCar.java | 6 +-- src/{main/java => }/org/model/Vehicle.java | 0 .../java => }/org/util/VehicleInspector.java | 2 +- 11 files changed, 70 insertions(+), 9 deletions(-) rename src/{main/java => }/org/Main.java (74%) rename src/{main/java => }/org/behavior/Chargeable.java (100%) rename src/{main/java => }/org/behavior/Refuelable.java (100%) rename src/{main/java => }/org/behavior/Serviceable.java (100%) rename src/{main/java => }/org/model/Car.java (85%) rename src/{main/java => }/org/model/ElectricCar.java (94%) rename src/{main/java => }/org/model/GasCar.java (95%) rename src/{main/java => }/org/model/HybridCar.java (94%) rename src/{main/java => }/org/model/SportsCar.java (88%) rename src/{main/java => }/org/model/Vehicle.java (100%) rename src/{main/java => }/org/util/VehicleInspector.java (97%) diff --git a/src/main/java/org/Main.java b/src/org/Main.java similarity index 74% rename from src/main/java/org/Main.java rename to src/org/Main.java index 7a3d8c8..589a7df 100644 --- a/src/main/java/org/Main.java +++ b/src/org/Main.java @@ -1,4 +1,10 @@ package org; +import org.model.*; +import org.util.VehicleInspector; +import org.model.Vehicle; +import org.util.VehicleInspector; + +import org.behavior.Serviceable; public class Main { public static void main(String[] args) { @@ -84,6 +90,10 @@ public class Main { + + + + // ============================================================ // TODO 6: // Loop through the Serviceable[] array: @@ -118,9 +128,43 @@ public class Main { // // ============================================================ + Serviceable tesla = new ElectricCar("Tesla", "Model 3", 2023, 5000, 5, 75, 80); + Serviceable honda = new GasCar("Honda", "Civic", 2022, 15000, 5, 50, "Gasoline"); + Serviceable porsche = new SportsCar("Porsche", "911", 2023, 2000, 2, 60, "Gasoline", 3.5); + Vehicle[] vehicles = {(Vehicle) tesla, (Vehicle) honda, (Vehicle) porsche}; + for (Vehicle v : vehicles) { + v.basicInfo(); + System.out.println(); + } + + + for (Vehicle v : vehicles) { + + VehicleInspector.inspect(v); + } + + + Serviceable[] serviceables = { tesla, honda, porsche }; + + + for (Serviceable s : serviceables) { + Vehicle v = (Vehicle) s; + if (s.needsService(v)) { + System.out.println(v.GetBrand() + " " + v.GetBrand() + " needs service."); + s.performService(); + } else { + System.out.println(v.GetBrand() + " " + v.GetModel() + " does not need service."); + } + System.out.println(); + } + + + System.out.println("=== Workshop Completed ==="); } } + + diff --git a/src/main/java/org/behavior/Chargeable.java b/src/org/behavior/Chargeable.java similarity index 100% rename from src/main/java/org/behavior/Chargeable.java rename to src/org/behavior/Chargeable.java diff --git a/src/main/java/org/behavior/Refuelable.java b/src/org/behavior/Refuelable.java similarity index 100% rename from src/main/java/org/behavior/Refuelable.java rename to src/org/behavior/Refuelable.java diff --git a/src/main/java/org/behavior/Serviceable.java b/src/org/behavior/Serviceable.java similarity index 100% rename from src/main/java/org/behavior/Serviceable.java rename to src/org/behavior/Serviceable.java diff --git a/src/main/java/org/model/Car.java b/src/org/model/Car.java similarity index 85% rename from src/main/java/org/model/Car.java rename to src/org/model/Car.java index 0f959c4..b1c922d 100644 --- a/src/main/java/org/model/Car.java +++ b/src/org/model/Car.java @@ -11,7 +11,7 @@ package org.model; import org.behavior.Serviceable; -public abstract class Car extends Vehicle implements Serviceable { +public abstract class Car extends org.model.Vehicle implements Serviceable { private int seats; @@ -54,11 +54,14 @@ public abstract class Car extends Vehicle implements Serviceable { * - Print: "General car service completed" */ @Override - public boolean needsService(Vehicle v) + public boolean needsService(org.model.Vehicle v) { return this.GetMileage() > 10000 ; } - @Override void performService(){ + + public abstract boolean needService(org.model.Vehicle v); + + @Override public void performService(){ System.out.println("General car service completed") ; } diff --git a/src/main/java/org/model/ElectricCar.java b/src/org/model/ElectricCar.java similarity index 94% rename from src/main/java/org/model/ElectricCar.java rename to src/org/model/ElectricCar.java index 6ecd59a..e85eaa4 100644 --- a/src/main/java/org/model/ElectricCar.java +++ b/src/org/model/ElectricCar.java @@ -59,9 +59,9 @@ public class ElectricCar extends Car implements Chargeable { } } @Override - public boolean needService(vehicle v) + public boolean needService(org.model.Vehicle v) { - return (this.Getmileage()> 8000) + return (this.GetMileage()> 8000); } @Override public void performService() diff --git a/src/main/java/org/model/GasCar.java b/src/org/model/GasCar.java similarity index 95% rename from src/main/java/org/model/GasCar.java rename to src/org/model/GasCar.java index 1a67730..7d5cef0 100644 --- a/src/main/java/org/model/GasCar.java +++ b/src/org/model/GasCar.java @@ -31,6 +31,12 @@ public class GasCar extends Car implements Refuelable { { return this.GetMileage()> 12000 ; } + + @Override + public boolean needService(Vehicle v) { + return false; + } + @Override public void performService() { diff --git a/src/main/java/org/model/HybridCar.java b/src/org/model/HybridCar.java similarity index 94% rename from src/main/java/org/model/HybridCar.java rename to src/org/model/HybridCar.java index 5da3abd..1507fe3 100644 --- a/src/main/java/org/model/HybridCar.java +++ b/src/org/model/HybridCar.java @@ -1,6 +1,8 @@ package org.model; import org.behavior.Chargeable; import org.behavior.Refuelable; +import org.model.Vehicle; + public class HybridCar extends Car implements Chargeable , Refuelable { private int batteryCapacity; @@ -34,6 +36,12 @@ public class HybridCar extends Car implements Chargeable , Refuelable { System.out.println("fuel level : " + fuelLevel) ; System.out.println("fuel type : " + fuelType) ; } + + @Override + public boolean needService(Vehicle v) { + return false; + } + @Override public void charge(double amount) { diff --git a/src/main/java/org/model/SportsCar.java b/src/org/model/SportsCar.java similarity index 88% rename from src/main/java/org/model/SportsCar.java rename to src/org/model/SportsCar.java index a8ec66c..b1173ae 100644 --- a/src/main/java/org/model/SportsCar.java +++ b/src/org/model/SportsCar.java @@ -9,7 +9,7 @@ package org.model; * Print "High-performance brake system checked" */ -public class SportsCar extends GasCar { +public class SportsCar extends org.model.GasCar { private double zeroToHundred; @@ -24,7 +24,7 @@ public class SportsCar extends GasCar { this.zeroToHundred = zeroToHundred; } @Override - public boolean needsService(Vehicle v) + public boolean needsService(org.model.Vehicle v) { return this.GetMileage() > 5000 ; } @@ -37,7 +37,7 @@ public class SportsCar extends GasCar { @Override public void showDetails() { - System.out.println("*details*") + System.out.println("*details*"); super.showDetails() ; System.out.println("0 --> 100 " + zeroToHundred) ; diff --git a/src/main/java/org/model/Vehicle.java b/src/org/model/Vehicle.java similarity index 100% rename from src/main/java/org/model/Vehicle.java rename to src/org/model/Vehicle.java diff --git a/src/main/java/org/util/VehicleInspector.java b/src/org/util/VehicleInspector.java similarity index 97% rename from src/main/java/org/util/VehicleInspector.java rename to src/org/util/VehicleInspector.java index f51df22..5c8ec7e 100644 --- a/src/main/java/org/util/VehicleInspector.java +++ b/src/org/util/VehicleInspector.java @@ -1,6 +1,6 @@ package org.util; -import org.*; +import org.model.*; import org.model.Vehicle; /*