From c19f43eebd3a2765434a399a089a0d6441da1922 Mon Sep 17 00:00:00 2001 From: Robin Cheney Date: Wed, 5 Nov 2025 09:44:32 +0100 Subject: [PATCH] Gone back to array for storing Treibstoff instances --- src/main/java/de/tankstelle/GrosseTankstelle.java | 12 ++++++++---- src/main/java/de/tankstelle/KleineTankstelle.java | 8 ++++---- src/main/java/de/tankstelle/MittlereTankstelle.java | 10 ++++++---- src/main/java/de/tankstelle/Tankstelle.java | 6 ++---- src/main/java/de/tankstelle/Treibstoff.java | 8 +++++++- 5 files changed, 27 insertions(+), 17 deletions(-) diff --git a/src/main/java/de/tankstelle/GrosseTankstelle.java b/src/main/java/de/tankstelle/GrosseTankstelle.java index 1503147..96e1157 100644 --- a/src/main/java/de/tankstelle/GrosseTankstelle.java +++ b/src/main/java/de/tankstelle/GrosseTankstelle.java @@ -1,12 +1,16 @@ package de.tankstelle; -import java.util.HashMap; - public class GrosseTankstelle extends Tankstelle { private String betreiberfirma_supermarkt; - public GrosseTankstelle(String betreiberfirma_supermarkt, byte mitarbeiterzahl, HashMap treibstoffe) { - super(mitarbeiterzahl, treibstoffe); + public GrosseTankstelle(String betreiberfirma_supermarkt) { + Treibstoff[] treibstoffe = { new Treibstoff(Treibstofftyp.SUPER, 16000f, 0f), + new Treibstoff(Treibstofftyp.SUPER_E10, 16000f, 0f), + new Treibstoff(Treibstofftyp.DIESEL, 16000f, 0f), + new Treibstoff(Treibstofftyp.PREMIUM_DIESEL, 16000f, 0f), + new Treibstoff(Treibstofftyp.AUTOGAS, 16000f, 0f) }; + super((byte) 4, treibstoffe); + this.betreiberfirma_supermarkt = betreiberfirma_supermarkt; } } diff --git a/src/main/java/de/tankstelle/KleineTankstelle.java b/src/main/java/de/tankstelle/KleineTankstelle.java index ea7b0c6..2302d00 100644 --- a/src/main/java/de/tankstelle/KleineTankstelle.java +++ b/src/main/java/de/tankstelle/KleineTankstelle.java @@ -1,12 +1,12 @@ package de.tankstelle; -import java.util.HashMap; - public class KleineTankstelle extends Tankstelle { private short anzahl_getraenkeautomaten; - public KleineTankstelle(short anzahl_getraenkeautomaten, byte mitarbeiterzahl, HashMap treibstoffe) { - super(mitarbeiterzahl, treibstoffe); + public KleineTankstelle(short anzahl_getraenkeautomaten) { + Treibstoff[] treibstoffe = { new Treibstoff(Treibstofftyp.SUPER, 8000f, 0f), + new Treibstoff(Treibstofftyp.DIESEL, 8000f, 0f) }; + super((byte) 4, treibstoffe); this.anzahl_getraenkeautomaten = anzahl_getraenkeautomaten; } } diff --git a/src/main/java/de/tankstelle/MittlereTankstelle.java b/src/main/java/de/tankstelle/MittlereTankstelle.java index 5f13497..f96c6a7 100644 --- a/src/main/java/de/tankstelle/MittlereTankstelle.java +++ b/src/main/java/de/tankstelle/MittlereTankstelle.java @@ -1,12 +1,14 @@ package de.tankstelle; -import java.util.HashMap; - public class MittlereTankstelle extends Tankstelle { private short quadratmeterzahl_verkaufsflaeche; - public MittlereTankstelle(short quadratmeterzahl_verkaufsflaeche, byte mitarbeiterzahl, HashMap treibstoffe) { - super(mitarbeiterzahl, treibstoffe); + public MittlereTankstelle(short quadratmeterzahl_verkaufsflaeche) { + Treibstoff[] treibstoffe = { new Treibstoff(Treibstofftyp.SUPER, 12000f, 0f), + new Treibstoff(Treibstofftyp.SUPER_E10, 12000f, 0f), + new Treibstoff(Treibstofftyp.PREMIUM_DIESEL, 12000f, 0f), + new Treibstoff(Treibstofftyp.AUTOGAS, 12000f, 0f) }; + super((byte) 4, treibstoffe); this.quadratmeterzahl_verkaufsflaeche = quadratmeterzahl_verkaufsflaeche; } } diff --git a/src/main/java/de/tankstelle/Tankstelle.java b/src/main/java/de/tankstelle/Tankstelle.java index 5bcbb11..0a9d8d8 100644 --- a/src/main/java/de/tankstelle/Tankstelle.java +++ b/src/main/java/de/tankstelle/Tankstelle.java @@ -1,7 +1,5 @@ package de.tankstelle; -import java.util.HashMap; - public class Tankstelle { /** * Anzahl der Mitarbeiter einer Tankstelle @@ -11,7 +9,7 @@ public class Tankstelle { * Treibstoffarten und -mengen. Array als Datentyp u.U. nicht geeignet -> * Alternative suchen (HashMap) */ - HashMap treibstoffe; + Treibstoff[] treibstoffe; /** * Superconstructor. Nur sichtbar für hiervon erbende Klassen @@ -19,7 +17,7 @@ public class Tankstelle { * @param mitarbeiterzahl * @param treibstoffe */ - protected Tankstelle(byte mitarbeiterzahl, HashMap treibstoffe) { + protected Tankstelle(byte mitarbeiterzahl, Treibstoff[] treibstoffe) { this.mitarbeiterzahl = mitarbeiterzahl; this.treibstoffe = treibstoffe; } diff --git a/src/main/java/de/tankstelle/Treibstoff.java b/src/main/java/de/tankstelle/Treibstoff.java index 37f6fc8..4751d3a 100644 --- a/src/main/java/de/tankstelle/Treibstoff.java +++ b/src/main/java/de/tankstelle/Treibstoff.java @@ -1,6 +1,11 @@ package de.tankstelle; public class Treibstoff { + /** + * Der Treibstofftyp. Wird sich innerhalb einer Instanz nicht ändern und ist deshalb final + */ + public final Treibstofftyp TREIBSTOFFTYP; + /** * Vorhandener Treibstoffvorrat */ @@ -11,7 +16,8 @@ public class Treibstoff { */ public float preis; - Treibstoff(float menge, float preis) { + Treibstoff(Treibstofftyp Treibstofftyp, float menge, float preis) { + this.TREIBSTOFFTYP = Treibstofftyp; this.menge = menge; this.preis = preis; } -- 2.43.0