User Methoden hinzugefügt

Feature-LibraryService
elarturo 2024-11-18 23:03:19 +01:00
parent c2d221d6fd
commit 5f178ce643
1 changed files with 51 additions and 34 deletions

View File

@ -1,47 +1,64 @@
package DomainLayer;
public abstract class User {
private String cardNumber;
private String name;
private double fees;
import java.util.ArrayList;
import java.util.List;
public User(String cardNumber, String name) {
this.cardNumber = cardNumber;
public abstract class User {
private String id;
private String name;
private double outstandingFees; // Ausstehende Gebühren
private List<Medium> borrowedMedia;
public User(String id, String name, double annualFee) {
this.id = id;
this.name = name;
this.fees = 0.0;
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 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;
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<Medium> getBorrowedMedia() {
return borrowedMedia;
}
class AdultUser extends User {
public AdultUser(String cardNumber, String name) {
super(cardNumber, name);
public void borrowMedium(Medium medium) {
borrowedMedia.add(medium);
}
public void returnMedium(Medium medium) {
borrowedMedia.remove(medium);
}
@Override
public double calculateAnnualFee() {
return 50.0;
public String toString() {
return "Benutzer{" +
"ID='" + id + '\'' +
", Name='" + name + '\'' +
", Ausstehende Gebühren=" + outstandingFees +
'}';
}
}