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; package DomainLayer;
import java.util.ArrayList;
import java.util.List;
public abstract class User { public abstract class User {
private String cardNumber; private String id;
private String name; private String name;
private double fees; private double outstandingFees; // Ausstehende Gebühren
private List<Medium> borrowedMedia;
public User(String cardNumber, String name) { public User(String id, String name, double annualFee) {
this.cardNumber = cardNumber; this.id = id;
this.name = name; this.name = name;
this.fees = 0.0; this.outstandingFees = 0.0;
} this.borrowedMedia = new ArrayList<>();
}
// Getter und Setter public String getId() {
public String getCardNumber() { return id;
return cardNumber; }
}
public String getName() { public String getName() {
return name; return name;
} }
public double getFees() { public double getOutstandingFees() {
return fees; return outstandingFees;
} }
public void addFees(double amount) { public void addFee(double fee) {
this.fees += amount; this.outstandingFees += fee;
} }
public void payFees(double amount) { 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 void borrowMedium(Medium medium) {
public AdultUser(String cardNumber, String name) { borrowedMedia.add(medium);
super(cardNumber, name); }
}
@Override public void returnMedium(Medium medium) {
public double calculateAnnualFee() { borrowedMedia.remove(medium);
return 50.0; }
}
@Override
public String toString() {
return "Benutzer{" +
"ID='" + id + '\'' +
", Name='" + name + '\'' +
", Ausstehende Gebühren=" + outstandingFees +
'}';
}
} }