From 11cc18f1b3481439671f3211373aaa216d986fee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leon=20L=C3=B6hle?= <3010261@hs-mannheim.de> Date: Thu, 14 Nov 2024 12:44:59 +0100 Subject: [PATCH] Anpassung und verbesserung der Medien Klasse, bau der Brettspiel Klasse --- Biblio/src/Bibliothek/Brettspiel.java | 22 ++++++++++++ Biblio/src/Bibliothek/Brettspiele.java | 49 -------------------------- Biblio/src/Bibliothek/Medien.java | 35 +++++++++++++++--- 3 files changed, 53 insertions(+), 53 deletions(-) create mode 100644 Biblio/src/Bibliothek/Brettspiel.java delete mode 100644 Biblio/src/Bibliothek/Brettspiele.java diff --git a/Biblio/src/Bibliothek/Brettspiel.java b/Biblio/src/Bibliothek/Brettspiel.java new file mode 100644 index 0000000..0181a75 --- /dev/null +++ b/Biblio/src/Bibliothek/Brettspiel.java @@ -0,0 +1,22 @@ +package Bibliothek; + +public class Brettspiel extends Medien { + private int spieleranzahl; + private int spieldauer; // in Minuten + + public Brettspiel(String id, String titel, int erscheinungsjahr, int spieleranzahl, int spieldauer) { + super(id, titel, erscheinungsjahr); + this.spieleranzahl = spieleranzahl; + this.spieldauer = spieldauer; + } + + @Override + public int getAusleihdauer() { return 3; } // 3 Wochen für Brettspiele + @Override + public int getMaxVerlaengerungen() { return 2; } // Brettspiele können 2-mal verlängert werden + + @Override + public String getDetails() { + return "Brettspiel: " + titel + ", Spieleranzahl: " + spieleranzahl + ", Spieldauer: " + spieldauer + " Minuten"; + } +} diff --git a/Biblio/src/Bibliothek/Brettspiele.java b/Biblio/src/Bibliothek/Brettspiele.java deleted file mode 100644 index 2b73acc..0000000 --- a/Biblio/src/Bibliothek/Brettspiele.java +++ /dev/null @@ -1,49 +0,0 @@ -package Bibliothek; - -public class Brettspiele extends Medien { - private int maxSpieler; - private int spieldauer; - - public Brettspiele(String titel, String id, int erscheinungsjahr, int spieleranzahl, int spieldauer) { - super(titel, id, erscheinungsjahr); - this.maxSpieler = maxSpieler; - this.spieldauer = spieldauer; - } - - public void setMaxSpieler(int maxSpieler) { - this.maxSpieler = maxSpieler; - } - - public int getMaxSpieler() { - return maxSpieler; - } - - public void setSpieldauer(int spieleranzahl) { - this.spieldauer = spieleranzahl; - } - - public int getSpieldauer() { - return spieldauer; - } - - @Override - public void ausleihen() { - System.out.println("Das Brettspiel mit dem Namen " + titel + "und der ID: " + id + " wurde ausgeliehen"); - } - - @Override - public void zurueckgeben() { - - } - - @Override - public void verlaengern() { - System.out.println("Die Ausleihdauer für das Brettspiel '" + titel + "' wurde verlängert."); - } - - @Override - public void ausgeben() { - System.out.println("Dieses Brettspiel heißt " +titel + "stammt aus dem Jahr " + erscheinungsjahr + "ist für " + maxSpieler + " Spieler gedacht und dauert ca. "+spieldauer +" Minuten"); - - } -} diff --git a/Biblio/src/Bibliothek/Medien.java b/Biblio/src/Bibliothek/Medien.java index 32df57b..d47617b 100644 --- a/Biblio/src/Bibliothek/Medien.java +++ b/Biblio/src/Bibliothek/Medien.java @@ -1,14 +1,19 @@ package Bibliothek; +import java.time.LocalDate; + public abstract class Medien { protected String titel; protected String id; protected int erscheinungsjahr; + protected boolean verfuegbar; + protected LocalDate rueckgabedat; public Medien(String titel, String id, int erscheinungsjahr) { this.titel = titel; this.id = id; this.erscheinungsjahr = erscheinungsjahr; + this.verfuegbar = true; } public String getTitel() { return titel; @@ -28,9 +33,31 @@ public abstract class Medien { public void setErscheinungsjahr(int er) { this.erscheinungsjahr = er; } + public abstract int getAusleihdauer(); + public abstract int getMaxVerlaengerungen(); - public abstract void ausleihen(); - public abstract void zurueckgeben(); - public abstract void verlaengern(); - public abstract void ausgeben(); + public void ausleihen() { + if (verfuegbar) { + verfuegbar = false; + rueckgabedat = LocalDate.now().plusWeeks(getAusleihdauer()); + System.out.println("Ausgeliehen bis: " + rueckgabedat); + } else { + System.out.println("Nicht verfügbar."); + } + } + + public boolean verlaengern(int aktuelleVerlaengerungen) { + if (aktuelleVerlaengerungen < getMaxVerlaengerungen()) { + rueckgabedat = rueckgabedat.plusWeeks(getAusleihdauer()); + return true; + } + return false; + } + + public void zurueckgeben() { + verfuegbar = true; + rueckgabedat = null; + } + + public abstract String getDetails(); }