Files
ProgrammierenSemester2/src/personen/DHStudent.java
2025-07-25 11:32:24 +02:00

121 lines
3.2 KiB
Java

package personen;
import java.util.Comparator;
/**
* DHStudent-Klasse repräsentiert einen DH-Studenten (Dualer Hochschule Student)
* Erbt von Student und implementiert IMitarbeiter
*
* @author Ihr Name
* @version 1.0
*/
public class DHStudent extends Student implements IMitarbeiter {
/**
* Der Kurs des DH-Studenten
*/
private String kurs;
/**
* Konstruktor für DHStudent
*
* @param name Der Name des DH-Studenten
* @param kurs Der Kurs des DH-Studenten
*/
public DHStudent(String name, String kurs) {
super(name);
this.kurs = kurs;
}
/**
* Implementierung der Methode arbeitenOhneMurren aus dem Interface IMitarbeiter
*/
@Override
public void arbeitenOhneMurren() {
System.out.println("Ich bin der DHStudent " + this.name + " und gehe daher immer freudig meine Arbeit an!");
}
/**
* Gibt den Namen des Kurses ohne Zeilenumbruch aus und ruft die ererbte Methode druckeObjekt mit Parameter true auf
*/
public void druckeKurs() {
System.out.print(this.kurs);
this.druckeObjekt(true);
}
/**
* Getter-Methode für den Kurs
*
* @return Der Kurs des DH-Studenten
*/
public String getKurs() {
return kurs;
}
/**
* Setter-Methode für den Kurs
*
* @param kurs Der neue Kurs des DH-Studenten
*/
public void setKurs(String kurs) {
this.kurs = kurs;
}
/**
* Überschreibt die toString-Methode für bessere Ausgabe
*
* @return String-Repräsentation mit Kurs, Name und Semester
*/
@Override
public String toString() {
return this.kurs + " " + this.name + " " + this.semester + ".Sem.";
}
/**
* Implementierung der default-Methode inKantineEssen aus IMitarbeiter
*/
@Override
public void inKantineEssen() {
System.out.println("Wie lecker doch das Essen bei meiner Ausbildungsfirma schmeckt!");
}
/**
* Innere Klasse für Sortierung nach Kurs und Name
*/
public class ComparatorKursName implements Comparator<DHStudent> {
@Override
public int compare(DHStudent dhs1, DHStudent dhs2) {
int kursVergleich = dhs1.kurs.compareTo(dhs2.kurs);
if (kursVergleich != 0) {
return kursVergleich;
}
return dhs1.name.compareTo(dhs2.name);
}
}
/**
* Innere Klasse für Sortierung nach Semester, Name und Kurs
*/
public class ComparatorSemesterNameKurs implements Comparator<DHStudent> {
@Override
public int compare(DHStudent dhs1, DHStudent dhs2) {
int semesterVergleich = Integer.compare(dhs1.semester, dhs2.semester);
if (semesterVergleich != 0) {
return semesterVergleich;
}
int nameVergleich = dhs1.name.compareTo(dhs2.name);
if (nameVergleich != 0) {
return nameVergleich;
}
return dhs1.kurs.compareTo(dhs2.kurs);
}
}
/**
* Statische Methode druckeAnzahl (für spätere Aufgabenteile)
*/
public static void druckeAnzahl() {
System.out.println("DHStudent.anzahl = " + Person.anzahl);
}
}