121 lines
3.2 KiB
Java
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);
|
|
}
|
|
}
|