public class Vorlesung { private String titel; private Student[] teilnehmer; private Dozent dozent; private int max_teilnehmer; // Erweiterung (Nachfrage in der Übung: // Allgemeine Funktion, um Namen auszugeben, // unabhängig davon, ob Dozent oder Student, mit der Basisklasse Object! public static void print_name(Object o){ // Hier wird die Funktion toString() entweder aus Student, oder Dozent aufgerufen. System.out.println(o); } public Vorlesung(String titel, int max_teilnehmer){ // Vorlesungstitel kopieren, this.titel = titel; // leeres Array erzeugen, teilnehmer = new Student[max_teilnehmer]; // private Variable max_teilnehmer setzen this.max_teilnehmer = max_teilnehmer; } public int studentenZaehlen(){ // Gibt die Anzahl der Elemente des teilnehmer-Arrays // zurück, die nicht null sind. int zahl = 0; for(int i=0; i Warnung ausgeben, und keinen neuen Eintrag durchführen. for(int i=0; i< max_teilnehmer; i++){ if(teilnehmer[i] == null){ teilnehmer[i] = student; return true; // Funktion mit "Erfolg" verlassen } } return false; // Hier landen wir nur, wenn in der for()-Schleife kein // Platz gefunden wurde. } public int studentIndex(Student student){ // Arrayelement für Student suchen, Position zurückgeben // -1 falls nicht gefunden. for(int i=0; i < max_teilnehmer; i++){ // Achtung: vorname, nachname und matrikelnummer sind private in Student, // daher müssen wir die get_*()-Funktionen verwenden, die public sind! if(teilnehmer[i].get_vorname().equals(student.get_vorname()) && teilnehmer[i].get_nachname().equals(student.get_nachname()) && teilnehmer[i].get_matrikelnummer() == student.get_matrikelnummer()) return i; } // Wenn wir hier landen, war der Student nicht in der Vorlesung! return -1; } public boolean studentEntfernen(int index){ // Student an index im Array nullsetzen if(index >= 0 && index < max_teilnehmer){ teilnehmer[index] = null; return true; } else { return false; // Array-Bereich überschritten } } public void printTeilnehmer(){ // Alle Teilnehmer auflisten, die an der Vorlesung teilnehmen // dürfen (max_teilnehmer und null-Elemente beachten) for(int i = 0; i < max_teilnehmer; i++){ if(teilnehmer[i] != null){ System.out.println(teilnehmer[i]); } } } // Erweiterung / Test: allgemeine Funktion aufrufen für spezielle Klassen public static void main(String[] args){ print_name(new Student("Klaus", "Knopper")); print_name(new Dozent("Test", "Prof")); } }