Anpassung und verbesserung der Medien Klasse, bau der Brettspiel Klasse

development
Leon Löhle 2024-11-14 12:44:59 +01:00
parent 0e4b7f792e
commit 11cc18f1b3
3 changed files with 53 additions and 53 deletions

View File

@ -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";
}
}

View File

@ -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");
}
}

View File

@ -1,14 +1,19 @@
package Bibliothek; package Bibliothek;
import java.time.LocalDate;
public abstract class Medien { public abstract class Medien {
protected String titel; protected String titel;
protected String id; protected String id;
protected int erscheinungsjahr; protected int erscheinungsjahr;
protected boolean verfuegbar;
protected LocalDate rueckgabedat;
public Medien(String titel, String id, int erscheinungsjahr) { public Medien(String titel, String id, int erscheinungsjahr) {
this.titel = titel; this.titel = titel;
this.id = id; this.id = id;
this.erscheinungsjahr = erscheinungsjahr; this.erscheinungsjahr = erscheinungsjahr;
this.verfuegbar = true;
} }
public String getTitel() { public String getTitel() {
return titel; return titel;
@ -28,9 +33,31 @@ public abstract class Medien {
public void setErscheinungsjahr(int er) { public void setErscheinungsjahr(int er) {
this.erscheinungsjahr = er; this.erscheinungsjahr = er;
} }
public abstract int getAusleihdauer();
public abstract int getMaxVerlaengerungen();
public abstract void ausleihen(); public void ausleihen() {
public abstract void zurueckgeben(); if (verfuegbar) {
public abstract void verlaengern(); verfuegbar = false;
public abstract void ausgeben(); 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();
} }