123 lines
4.3 KiB
Plaintext
123 lines
4.3 KiB
Plaintext
|
|
ich: wie kann ich die jährliche Gebühren, die jeweils in den klassen Erwachsener und Student als final JAHRESGEBUEHREN,
|
|
mit in das gebührenkonto mitrechnen
|
|
|
|
AI: Um die jährlichen Gebühren (JAHRESGEBUEHREN) aus den Klassen Erwachsener und Student in das Gebührenkonto eines
|
|
Benutzers einzurechnen, kannst du folgende Schritte unternehmen:
|
|
|
|
1. Änderungen in den Klassen Erwachsener und Student
|
|
Die Klassen sollten eine Methode bereitstellen, um die jährlichen Gebühren abzurufen. Wenn sie final sind, kann dies einfach ein Getter sein.
|
|
|
|
Beispiel: Klasse Erwachsener
|
|
java
|
|
Copy code
|
|
public class Erwachsener extends Benutzer {
|
|
public static final double JAHRESGEBUEHREN = 50.0; // Beispielwert
|
|
|
|
@Override
|
|
public double getJahresgebuehren() {
|
|
return JAHRESGEBUEHREN;
|
|
}
|
|
}
|
|
Beispiel: Klasse Student
|
|
java
|
|
Copy code
|
|
public class Student extends Benutzer {
|
|
public static final double JAHRESGEBUEHREN = 25.0; // Beispielwert
|
|
|
|
@Override
|
|
public double getJahresgebuehren() {
|
|
return JAHRESGEBUEHREN;
|
|
}
|
|
}
|
|
2. Anpassung der Basisklasse Benutzer
|
|
In der Basisklasse Benutzer solltest du eine Methode getJahresgebuehren() deklarieren, die von den Unterklassen überschrieben wird.
|
|
|
|
Klasse Benutzer
|
|
java
|
|
Copy code
|
|
public abstract class Benutzer {
|
|
private double gebuehrenkonto; // Das Konto, das alle Gebühren summiert
|
|
|
|
public Benutzer() {
|
|
this.gebuehrenkonto = 0.0; // Initialisierung
|
|
}
|
|
|
|
// Abstrakte Methode, die von Unterklassen implementiert wird
|
|
public abstract double getJahresgebuehren();
|
|
|
|
// Methode, um Gebühren hinzuzufügen
|
|
public void addGebuehren(double betrag) {
|
|
this.gebuehrenkonto += betrag;
|
|
}
|
|
|
|
// Methode, um das Gebührenkonto abzurufen
|
|
public double getGebuehrenkonto() {
|
|
return gebuehrenkonto;
|
|
}
|
|
|
|
// Methode, um die Jahresgebühr hinzuzufügen
|
|
public void berechneJahresgebuehren() {
|
|
addGebuehren(getJahresgebuehren());
|
|
}
|
|
}
|
|
3. Automatische Einrechnung der Jahresgebühren
|
|
Du kannst sicherstellen, dass die jährlichen Gebühren beim Erstellen eines Benutzers automatisch eingerechnet werden,
|
|
oder sie beim Jahreswechsel explizit einberechnen.
|
|
|
|
Beispiel: Automatische Berechnung bei Benutzererstellung
|
|
Passe die Konstruktoren der Unterklassen an, um die Jahresgebühren direkt hinzuzufügen:
|
|
|
|
java
|
|
Copy code
|
|
public class Erwachsener extends Benutzer {
|
|
public static final double JAHRESGEBUEHREN = 50.0;
|
|
|
|
public Erwachsener() {
|
|
super(); // Ruft den Konstruktor von Benutzer auf
|
|
berechneJahresgebuehren(); // Hinzufügen der Jahresgebühr
|
|
}
|
|
|
|
@Override
|
|
public double getJahresgebuehren() {
|
|
return JAHRESGEBUEHREN;
|
|
}
|
|
}
|
|
4. Beispiel für manuelle Einrechnung bei Jahreswechsel
|
|
Wenn die Jahresgebühren zu einem bestimmten Zeitpunkt eingerechnet werden sollen, kannst du eine Methode
|
|
in der Klasse BibliothekSystem hinzufügen:
|
|
|
|
Methode in BibliothekSystem
|
|
java
|
|
Copy code
|
|
public void berechneJahresgebuehrenFuerAlleBenutzer(List<Benutzer> benutzerListe) {
|
|
for (Benutzer benutzer : benutzerListe) {
|
|
benutzer.berechneJahresgebuehren();
|
|
}
|
|
}
|
|
Aufruf der Methode
|
|
java
|
|
Copy code
|
|
BibliothekSystem bibliothekSystem = BibliothekSystem.getInstance();
|
|
bibliothekSystem.berechneJahresgebuehrenFuerAlleBenutzer(benutzerListe);
|
|
5. Aktualisierung des Gebührenkontos bei Aktionen
|
|
Das System kann die Jahresgebühren im Gebührenkonto automatisch berücksichtigen, wenn der Benutzer sein Konto abruft:
|
|
|
|
Aktualisierung bei Kontoabfrage
|
|
java
|
|
Copy code
|
|
public double getGesamtgebuehren() {
|
|
return getGebuehrenkonto(); // Gebührensaldo inklusive Jahresgebühren
|
|
}
|
|
6. Ausgabe für den Benutzer
|
|
Die Gebühren können bei jeder Benutzerinteraktion angezeigt werden, z. B. bei der Anmeldung:
|
|
|
|
java
|
|
Copy code
|
|
System.out.println("Ihre Gesamtgebühren betragen: " + benutzer.getGesamtgebuehren() + "€");
|
|
Zusammenfassung
|
|
Die jährlichen Gebühren werden über die Methode getJahresgebuehren() aus den Unterklassen abgerufen.
|
|
Die Methode berechneJahresgebuehren() fügt die Gebühren zum Konto des Benutzers hinzu.
|
|
Entweder bei der Erstellung eines Benutzers oder zu einem bestimmten Zeitpunkt (z. B. Jahreswechsel) werden die Gebühren berechnet.
|
|
Das Gebührenkonto wird automatisch aktualisiert und bei Benutzeraktionen angezeigt.
|
|
Mit dieser Struktur bleibt das System flexibel und wartbar. |