Bib1/Benutzer.java

87 lines
2.4 KiB
Java

abstract class Benutzer {
private String name;
private String nachname;
private int kundennummer;
private String art; // Benutzerart (Erwachsener, Schüler/Student, etc.)
private double jahresgebuehr; // Jahresgebühr des Benutzers
private double gebuehren; // Aktuelle ausstehende Gebühren des Benutzers
// Konstruktor
public Benutzer(String name, String nachname, int kundennummer, String art) {
this.name = name;
this.nachname = nachname;
this.kundennummer = kundennummer;
this.art = art;
// Jahresgebühr festlegen basierend auf der Benutzerart
if (art.equalsIgnoreCase("Erwachsener")) {
this.jahresgebuehr = 50.0; // Beispiel für regulären Preis
} else if (art.equalsIgnoreCase("Schüler/Student")) {
this.jahresgebuehr = 25.0; // Beispiel für ermäßigten Preis
} else {
this.jahresgebuehr = 0.0; // Default-Wert, z. B. für Admins oder Kinder
}
this.gebuehren = 0.0; // Anfangs keine Gebühren
}
// Getter- und Setter-Methoden
public String getName() {
return name;
}
public String getNachname() {
return nachname;
}
public int getKundennummer() {
return kundennummer;
}
public String getArt() {
return art;
}
public double getJahresgebuehr() {
return jahresgebuehr;
}
public double getGebuehren() {
return gebuehren;
}
public void setGebuehren(double gebuehren) {
this.gebuehren = gebuehren;
}
// toString-Methode
@Override
public String toString() {
return "Benutzer{" +
"Name='" + name + '\'' +
", Nachname='" + nachname + '\'' +
", Kundennummer=" + kundennummer +
", Art='" + art + '\'' +
", Jahresgebühr=" + jahresgebuehr +
", Ausstehende Gebühren=" + gebuehren +
'}';
}
// Spezifische Benutzertypen als Unterklassen
public static class Erwachsener extends Benutzer {
public Erwachsener(String name, String nachname, int kundennummer) {
super(name, nachname, kundennummer, "Erwachsener");
}
}
public static class SchuelerStudent extends Benutzer {
public SchuelerStudent(String name, String nachname, int kundennummer,String art) {
super(name, nachname, kundennummer,art);
}
}
}