From 5f178ce643d09d1f84ae2c1166d6716d4439ea5a Mon Sep 17 00:00:00 2001 From: elarturo Date: Mon, 18 Nov 2024 23:03:19 +0100 Subject: [PATCH] =?UTF-8?q?User=20Methoden=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/DomainLayer/User.java | 85 +++++++++++-------- 1 file changed, 51 insertions(+), 34 deletions(-) diff --git a/Bibliotheksverwaltung/src/DomainLayer/User.java b/Bibliotheksverwaltung/src/DomainLayer/User.java index 24ded85..632dd6a 100644 --- a/Bibliotheksverwaltung/src/DomainLayer/User.java +++ b/Bibliotheksverwaltung/src/DomainLayer/User.java @@ -1,47 +1,64 @@ package DomainLayer; +import java.util.ArrayList; +import java.util.List; + public abstract class User { - private String cardNumber; - private String name; - private double fees; + private String id; + private String name; + private double outstandingFees; // Ausstehende Gebühren + private List borrowedMedia; - public User(String cardNumber, String name) { - this.cardNumber = cardNumber; - this.name = name; - this.fees = 0.0; - } + public User(String id, String name, double annualFee) { + this.id = id; + this.name = name; + this.outstandingFees = 0.0; + this.borrowedMedia = new ArrayList<>(); + } - // Getter und Setter - public String getCardNumber() { - return cardNumber; - } + public String getId() { + return id; + } - public String getName() { - return name; - } + public String getName() { + return name; + } - public double getFees() { - return fees; - } + public double getOutstandingFees() { + return outstandingFees; + } - public void addFees(double amount) { - this.fees += amount; - } + public void addFee(double fee) { + this.outstandingFees += fee; + } - public void payFees(double amount) { - this.fees -= amount; - } + public void payFees(double amount) { + if (amount > outstandingFees) { + System.out.println("Der Betrag übersteigt die ausstehenden Gebühren."); + return; + } + outstandingFees -= amount; + System.out.println("Zahlung von " + amount + "€ erfolgreich. Verbleibende Gebühren: " + outstandingFees + "€."); + } - public abstract double calculateAnnualFee(); -} + public List getBorrowedMedia() { + return borrowedMedia; + } -class AdultUser extends User { - public AdultUser(String cardNumber, String name) { - super(cardNumber, name); - } + public void borrowMedium(Medium medium) { + borrowedMedia.add(medium); + } - @Override - public double calculateAnnualFee() { - return 50.0; - } + public void returnMedium(Medium medium) { + borrowedMedia.remove(medium); + } + + @Override + public String toString() { + return "Benutzer{" + + "ID='" + id + '\'' + + ", Name='" + name + '\'' + + ", Ausstehende Gebühren=" + outstandingFees + + '}'; + } } \ No newline at end of file