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 { @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 { @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); } }