From 26e6d9b82d9c95f6ec0fc3d24e37b2a89201de7e Mon Sep 17 00:00:00 2001 From: HadiSharifi Date: Tue, 28 Apr 2026 10:40:55 +0330 Subject: [PATCH] complete all TODO sections in GasCar class --- src/main/java/org/model/Car.java | 8 ++--- src/main/java/org/model/GasCar.java | 53 ++++++++++++++++++++--------- 2 files changed, 40 insertions(+), 21 deletions(-) diff --git a/src/main/java/org/model/Car.java b/src/main/java/org/model/Car.java index c6db2c6..72e8db5 100644 --- a/src/main/java/org/model/Car.java +++ b/src/main/java/org/model/Car.java @@ -32,10 +32,10 @@ public abstract class Car extends Vehicle implements Serviceable { @Override public void showDetails() { System.out.println( - "brand: " + getBrand() - + " model: " + getModel() - + " year: " + getYear() - + " mileage: " + getMileage() + "brand: " + getBrand() + "\n" + + " model: " + getModel() + "\n" + + " year: " + getYear() + "\n" + + " mileage: " + getMileage() + "\n" + " seats: " + getSeats() ); } diff --git a/src/main/java/org/model/GasCar.java b/src/main/java/org/model/GasCar.java index 2109f93..548abcb 100644 --- a/src/main/java/org/model/GasCar.java +++ b/src/main/java/org/model/GasCar.java @@ -1,15 +1,5 @@ package org.model; -/* - * GasCar extends Car. - * Inherits Serviceable from Car. - * - * Service logic for GasCar: - * - needsService(): return true if mileage > 12000 - * - performService(): - * Print "Engine oil changed" - * Reset fuelLevel to 100 - */ import org.behavior.Refuelable; @@ -27,13 +17,42 @@ public class GasCar extends Car implements Refuelable { this.fuelType = fuelType; } - // TODO: Override getEnergyType() → return fuelType + " (Gas)" + public double getFuelLevel() { return this.fuelLevel; } + public String getFuelType() { return this.fuelType; } + public void setFuelLevel(double fuelLevel) { this.fuelLevel = fuelLevel; } - // TODO: Implement refuel(double amount) - // Validate amount - // Cap at 100 + @Override + public String getEnergyType() { + return getFuelType() + " (Gas)"; + } - // TODO: Override showDetails() - // Call super.showDetails() - // Print fuel level and fuel type + @Override + public void refuel(double amount) { + if (amount < 0) { + throw new IllegalArgumentException("Amount must be positive"); + } + if ( getFuelLevel() + amount > 100 ) { + setFuelLevel(100); + } + setFuelLevel(getFuelLevel() + amount); + } + + @Override + public void showDetails() { + super.showDetails(); + System.out.println( + "fuel level: " + this.fuelLevel + "\n" + + " fuel type: " + this.fuelType); + } + + @Override + public boolean needsService(Vehicle v) { + return getMileage() > 12000; + } + + @Override + public void performService() { + System.out.println("Engine oil changed"); + setFuelLevel(100); + } }