Compare commits
6 Commits
534814919c
...
master
Author | SHA1 | Date | |
---|---|---|---|
d4c77fef1c | |||
22f5d6d57d | |||
ac4f45159d | |||
7054e41f3b | |||
9c98b720fe | |||
75771c9fdb |
6
.idea/GitLink.xml
generated
Normal file
6
.idea/GitLink.xml
generated
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="uk.co.ben_gibson.git.link.SettingsState">
|
||||||
|
<option name="host" value="e0f86390-1091-4871-8aeb-f534fbc99cf0" />
|
||||||
|
</component>
|
||||||
|
</project>
|
@ -1,15 +0,0 @@
|
|||||||
//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
|
|
||||||
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
|
|
||||||
public class Main {
|
|
||||||
public static void main(String[] args) {
|
|
||||||
//TIP Press <shortcut actionId="ShowIntentionActions"/> with your caret at the highlighted text
|
|
||||||
// to see how IntelliJ IDEA suggests fixing it.
|
|
||||||
System.out.printf("Hello and welcome!");
|
|
||||||
|
|
||||||
for (int i = 1; i <= 5; i++) {
|
|
||||||
//TIP Press <shortcut actionId="Debug"/> to start debugging your code. We have set one <icon src="AllIcons.Debugger.Db_set_breakpoint"/> breakpoint
|
|
||||||
// for you, but you can always add more by pressing <shortcut actionId="ToggleLineBreakpoint"/>.
|
|
||||||
System.out.println("i = " + i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
2
src/module-info.java
Normal file
2
src/module-info.java
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
module tinf24cs1.fix {
|
||||||
|
}
|
63
src/personen/Angestellter.java
Normal file
63
src/personen/Angestellter.java
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
package personen;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Die Klasse Angestellter repräsentiert einen Angestellten einer Firma.
|
||||||
|
* Sie erbt von der abstrakten Klasse Person und implementiert das Interface IMitarbeiter.
|
||||||
|
*/
|
||||||
|
public class Angestellter extends Person implements IMitarbeiter {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Die Personalnummer des Angestellten
|
||||||
|
*/
|
||||||
|
private Integer personalNr;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Konstruktor für einen Angestellten
|
||||||
|
* @param name Der Name des Angestellten
|
||||||
|
* @param personalNr Die Personalnummer des Angestellten
|
||||||
|
*/
|
||||||
|
public Angestellter(String name, Integer personalNr) {
|
||||||
|
super(name);
|
||||||
|
this.personalNr = personalNr;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Überschreibt die ererbte Methode druckeObjekt
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void druckeObjekt() {
|
||||||
|
System.out.println("Der Angestellte heisst " + this.name + ", hat die Personalnr. " +
|
||||||
|
this.personalNr + " und ist einer von " + Person.anzahl);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Implementiert die Methode aus dem Interface IMitarbeiter
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void arbeitenOhneMurren() {
|
||||||
|
System.out.println("Ich bin Angestellter " + this.name + " und arbeite ohne Murren und Knurren!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt die Personalnummer des Angestellten aus
|
||||||
|
*/
|
||||||
|
public void druckePersonalNr() {
|
||||||
|
System.out.println("Personalnr. " + this.personalNr);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Getter-Methode für die Personalnummer
|
||||||
|
* @return Die Personalnummer des Angestellten
|
||||||
|
*/
|
||||||
|
public Integer getPersonalNr() {
|
||||||
|
return personalNr;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setter-Methode für die Personalnummer
|
||||||
|
* @param personalNr Die neue Personalnummer
|
||||||
|
*/
|
||||||
|
public void setPersonalNr(Integer personalNr) {
|
||||||
|
this.personalNr = personalNr;
|
||||||
|
}
|
||||||
|
}
|
112
src/personen/DHStudent.java
Normal file
112
src/personen/DHStudent.java
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
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.";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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);
|
||||||
|
}
|
||||||
|
}
|
32
src/personen/Firma.java
Normal file
32
src/personen/Firma.java
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
package personen;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Die Klasse Firma repräsentiert eine Firma mit einem Namen.
|
||||||
|
* Sie stellt Methoden zur Ausgabe des Firmennamens zur Verfügung.
|
||||||
|
*
|
||||||
|
* @author [Ihr Name]
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
public class Firma {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Der Name der Firma
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Konstruktor zur Erstellung einer neuen Firma
|
||||||
|
*
|
||||||
|
* @param name Der Name der Firma
|
||||||
|
*/
|
||||||
|
public Firma(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt den Text "Der Firmenname lautet" sowie den Firmennamen aus
|
||||||
|
*/
|
||||||
|
public void druckeName() {
|
||||||
|
System.out.println("Der Firmenname lautet " + this.name);
|
||||||
|
}
|
||||||
|
}
|
13
src/personen/IKlausurSchreiber.java
Normal file
13
src/personen/IKlausurSchreiber.java
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
package personen;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface für Klausurschreiber
|
||||||
|
* Definiert die Fähigkeit, eine Klausur zu schreiben
|
||||||
|
*/
|
||||||
|
public interface IKlausurSchreiber {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Methode zum Schreiben einer Klausur
|
||||||
|
*/
|
||||||
|
void klausurSchreiben();
|
||||||
|
}
|
13
src/personen/IMitarbeiter.java
Normal file
13
src/personen/IMitarbeiter.java
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
package personen;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface für die Mitarbeiter
|
||||||
|
* Definiert die Fähigkeit, ohne Murren zu arbeiten
|
||||||
|
*/
|
||||||
|
public interface IMitarbeiter {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Methode für die Arbeit ohne Murren
|
||||||
|
*/
|
||||||
|
void arbeitenOhneMurren();
|
||||||
|
}
|
68
src/personen/Lehrbeauftragter.java
Normal file
68
src/personen/Lehrbeauftragter.java
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
package personen;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Klasse für Lehrbeauftragte, die Klausuren durchführen können
|
||||||
|
*/
|
||||||
|
public class Lehrbeauftragter {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Name des Lehrbeauftragten
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Array der Prüflinge für die nächste Klausur
|
||||||
|
*/
|
||||||
|
private IKlausurSchreiber[] prueflinge;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Konstruktor für Lehrbeauftragter
|
||||||
|
* @param name Name des Lehrbeauftragten
|
||||||
|
*/
|
||||||
|
public Lehrbeauftragter(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt den Namen des Lehrbeauftragten zurück
|
||||||
|
* @return Name des Lehrbeauftragten
|
||||||
|
*/
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IKlausurSchreiber[] getPrueflinge() {
|
||||||
|
return prueflinge;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt das Array der Prüflinge für die nächste Klausur
|
||||||
|
* @param prueflinge Array mit den zu prüfenden Studenten
|
||||||
|
*/
|
||||||
|
public void setPrueflinge(IKlausurSchreiber[] prueflinge) {
|
||||||
|
this.prueflinge = prueflinge;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Lässt alle im Array prueflinge aufgeführten Studenten eine Klausur schreiben
|
||||||
|
*/
|
||||||
|
public void lasseKlausurSchreiben() {
|
||||||
|
// Enhanced for-loop (for-each) ab Java 5
|
||||||
|
for (IKlausurSchreiber pruefling : prueflinge) {
|
||||||
|
pruefling.klausurSchreiben();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Überschreibt die toString-Methode der Klasse Object
|
||||||
|
* @return Der Name des Lehrbeauftragten
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return this.name;
|
||||||
|
}
|
||||||
|
}
|
47
src/personen/Person.java
Normal file
47
src/personen/Person.java
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
package personen;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Abstrakte Klasse Person als Basisklasse für verschiedene Personentypen.
|
||||||
|
* Verwaltet eine Klassenvariable zur Zählung aller erstellten Personen.
|
||||||
|
*/
|
||||||
|
public abstract class Person {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Klassenvariable zur Zählung aller erstellten Personen
|
||||||
|
*/
|
||||||
|
protected static int anzahl = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Name der Person
|
||||||
|
*/
|
||||||
|
protected String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Konstruktor der abstrakten Klasse Person
|
||||||
|
* @param name Der Name der Person
|
||||||
|
*/
|
||||||
|
public Person(String name) {
|
||||||
|
this.name = name;
|
||||||
|
Person.anzahl++;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Abstrakte Methode druckeObjekt - muss in abgeleiteten Klassen implementiert werden
|
||||||
|
*/
|
||||||
|
public abstract void druckeObjekt();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Klassenmethode zur Ausgabe der aktuellen Personenanzahl
|
||||||
|
*/
|
||||||
|
public static void druckeAnzahl() {
|
||||||
|
System.out.println("Person.anzahl: " + Person.anzahl);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Getter-Methode für den Namen
|
||||||
|
* @return Der Name der Person
|
||||||
|
*/
|
||||||
|
public String getName() {
|
||||||
|
return this.name;
|
||||||
|
}
|
||||||
|
}
|
129
src/personen/Student.java
Normal file
129
src/personen/Student.java
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
package personen;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Die Student-Klasse erbt von Person und implementiert IKlausurSchreiber.
|
||||||
|
* Studenten haben eine zufällige Semesterzahl und BAfG-Schulden.
|
||||||
|
*/
|
||||||
|
public class Student extends Person implements IKlausurSchreiber, Cloneable {
|
||||||
|
|
||||||
|
/** Die Semesterzahl des Studenten */
|
||||||
|
protected int semester;
|
||||||
|
|
||||||
|
/** Die BAfG-Schulden des Studenten */
|
||||||
|
protected double bafoegSchulden;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Konstruktor für Student
|
||||||
|
* @param name Der Name des Studenten
|
||||||
|
*/
|
||||||
|
public Student(String name) {
|
||||||
|
super(name);
|
||||||
|
|
||||||
|
// Zufallsgenerator mit verzögertem Startwert
|
||||||
|
try {
|
||||||
|
Thread.sleep(10);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
// Exception wird abgefangen
|
||||||
|
}
|
||||||
|
|
||||||
|
Random random = new Random(System.currentTimeMillis());
|
||||||
|
|
||||||
|
// Semesterzahl zuweisen: normale Studenten 1-12, DH-Studenten 1-6
|
||||||
|
if (this instanceof DHStudent) {
|
||||||
|
this.semester = random.nextInt(6) + 1;
|
||||||
|
this.bafoegSchulden = 0.00;
|
||||||
|
} else {
|
||||||
|
this.semester = random.nextInt(12) + 1;
|
||||||
|
this.bafoegSchulden = this.semester * 3000.00;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Überschreibt die abstrakte Methode aus Person
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void druckeObjekt() {
|
||||||
|
System.out.println("Der Student heisst " + this.name + ", ist im " +
|
||||||
|
this.semester + ". Sem. und hat " + this.bafoegSchulden +
|
||||||
|
" EUR Schulden wegen Bafoeg.");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Überladene Version von druckeObjekt
|
||||||
|
* @param kurz Bei true wird nur Name und Semester ausgegeben
|
||||||
|
*/
|
||||||
|
public void druckeObjekt(boolean kurz) {
|
||||||
|
if (kurz) {
|
||||||
|
System.out.println("Der Student heisst " + this.name + " " +
|
||||||
|
this.semester + ". Sem.");
|
||||||
|
} else {
|
||||||
|
druckeObjekt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Implementierung der Methode aus IKlausurSchreiber
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void klausurSchreiben() {
|
||||||
|
String dh = (this instanceof DHStudent) ? "DH-" : "";
|
||||||
|
System.out.println("Ich bin ein " + dh + "Student namens " + this.name +
|
||||||
|
" und schreibe meine Klausuren perfekt!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Getter-Methode für das Semester
|
||||||
|
* @return Die Semesterzahl
|
||||||
|
*/
|
||||||
|
public int getSemester() {
|
||||||
|
return this.semester;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt die Semesterzahl aus
|
||||||
|
*/
|
||||||
|
public void druckeSemester() {
|
||||||
|
System.out.println("Semesterzahl: " + this.semester);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clone-Methode für das Klonen von Studenten
|
||||||
|
* @return Ein geklonter Student
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Object clone() {
|
||||||
|
try {
|
||||||
|
Student geklonterStudent = (Student) super.clone();
|
||||||
|
Person.anzahl++; // Nur bei erfolgreichem Klonen erhöhen
|
||||||
|
return geklonterStudent;
|
||||||
|
} catch (CloneNotSupportedException e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Getter für BAfG-Schulden (wird später für GUI benötigt)
|
||||||
|
* @return Die BAfG-Schulden
|
||||||
|
*/
|
||||||
|
public double getBafoegSchulden() {
|
||||||
|
return this.bafoegSchulden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setter für BAfG-Schulden (wird später für GUI benötigt)
|
||||||
|
* @param bafoegSchulden Die neuen BAfG-Schulden
|
||||||
|
*/
|
||||||
|
public void setBafoegSchulden(double bafoegSchulden) {
|
||||||
|
this.bafoegSchulden = bafoegSchulden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setter für Semester (wird später für GUI benötigt)
|
||||||
|
* @param semester Das neue Semester
|
||||||
|
*/
|
||||||
|
public void setSemester(int semester) {
|
||||||
|
this.semester = semester;
|
||||||
|
}
|
||||||
|
}
|
13
src/personen/package-info.java
Normal file
13
src/personen/package-info.java
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
/**
|
||||||
|
* Dieses Paket enthält alle Klassen und Schnittstellen für das
|
||||||
|
* objektorientierte Java-Projekt zum Thema Personen.
|
||||||
|
*
|
||||||
|
* Das Paket umfasst:
|
||||||
|
* - Abstrakte Basisklasse Person
|
||||||
|
* - Konkrete Klassen: Student, DHStudent, Angestellter, Lehrbeauftragter, Firma
|
||||||
|
* - Schnittstellen: IKlausurSchreiber, IMitarbeiter
|
||||||
|
*
|
||||||
|
* @author Marcel Fix
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
package personen;
|
107
src/test/TestKlasse.java
Normal file
107
src/test/TestKlasse.java
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
package test;
|
||||||
|
|
||||||
|
import personen.*;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TestKlasse für die Programmieraufgabe TINF24CS1
|
||||||
|
* Diese Klasse testet alle erstellten Klassen und Schnittstellen
|
||||||
|
*/
|
||||||
|
public class TestKlasse {
|
||||||
|
|
||||||
|
// Testdaten fuer Studenten
|
||||||
|
static Student[] studentenFeld = {
|
||||||
|
new Student("Emil"),
|
||||||
|
new Student("Emil"),
|
||||||
|
new Student("Armin"),
|
||||||
|
new Student("Fritz"),
|
||||||
|
new Student("Ernst"),
|
||||||
|
new Student("Erna")
|
||||||
|
};
|
||||||
|
|
||||||
|
// Testdaten fuer DH-Studenten
|
||||||
|
static DHStudent[] dhStudentenFeld = {
|
||||||
|
new DHStudent("Anton", "TINF23CS1"),
|
||||||
|
new DHStudent("Michael", "TINF23CS1"),
|
||||||
|
new DHStudent("Uwe", "TINF23CS1"),
|
||||||
|
new DHStudent("Christian", "TINF23CS1"),
|
||||||
|
new DHStudent("Christian", "TINF24CS1"),
|
||||||
|
new DHStudent("Christiane", "TINF24CS1"),
|
||||||
|
new DHStudent("Uwe", "TINF24CS1"),
|
||||||
|
new DHStudent("Michaela", "TINF24CS1")
|
||||||
|
};
|
||||||
|
|
||||||
|
// Testdaten fuer Angestellte
|
||||||
|
static Angestellter[] angestelltenFeld = {
|
||||||
|
new Angestellter("Meier", 101000),
|
||||||
|
new Angestellter("Schulze", 101351),
|
||||||
|
new Angestellter("Hartmann", 102605),
|
||||||
|
new Angestellter("Grosskopf", 103731),
|
||||||
|
new Angestellter("Haudegen", 104566)
|
||||||
|
};
|
||||||
|
|
||||||
|
// Testdaten fuer Lehrbeauftragter
|
||||||
|
static Lehrbeauftragter[] lehrbeauftragtenFeld = {
|
||||||
|
new Lehrbeauftragter("Dr. Schlau"),
|
||||||
|
new Lehrbeauftragter("Prof. Einfallsreich"),
|
||||||
|
new Lehrbeauftragter("Dipl.-Ing. Pfiffikus"),
|
||||||
|
new Lehrbeauftragter("OStR Lehrreich")
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Konstruktor der TestKlasse
|
||||||
|
* Hier wird der gesamte Testcode ausgeführt
|
||||||
|
*/
|
||||||
|
public TestKlasse() {
|
||||||
|
// 4.3a
|
||||||
|
System.out.println("=== 4.3a ===");
|
||||||
|
Person.druckeAnzahl();
|
||||||
|
System.out.println("Erklärung: Es sind 19 Personen, weil alle statischen Felder bereits beim Laden der Klasse initialisiert werden.");
|
||||||
|
System.out.println("Das passiert vor der Ausführung der main-Methode.");
|
||||||
|
System.out.println();
|
||||||
|
|
||||||
|
// 4.3b - HIER EINFÜGEN:
|
||||||
|
System.out.println("=== 4.3b ===");
|
||||||
|
Firma firma = new Firma("DH-Partnerfirma GmbH");
|
||||||
|
firma.druckeName();
|
||||||
|
System.out.println();
|
||||||
|
|
||||||
|
// 4.3c)
|
||||||
|
System.out.println("=== 4.3c ===");
|
||||||
|
int mitarbeiterZahl = angestelltenFeld.length + dhStudentenFeld.length;
|
||||||
|
System.out.println("Mitarbeiterzahl: " + mitarbeiterZahl);
|
||||||
|
System.out.println();
|
||||||
|
|
||||||
|
// 4.3d)
|
||||||
|
IMitarbeiter[] mitarbeiterFeld = new IMitarbeiter[angestelltenFeld.length + dhStudentenFeld.length];
|
||||||
|
// Alle Angestellten in das Mitarbeiterfeld kopieren
|
||||||
|
for (int i = 0; i < angestelltenFeld.length; i++) {
|
||||||
|
mitarbeiterFeld[i] = angestelltenFeld[i];
|
||||||
|
}
|
||||||
|
// Alle DH-Studenten in das Mitarbeiterfeld kopieren
|
||||||
|
for (int i = 0; i < dhStudentenFeld.length; i++) {
|
||||||
|
mitarbeiterFeld[angestelltenFeld.length + i] = dhStudentenFeld[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
//4.3e
|
||||||
|
System.out.println("=== 4.3e ===");
|
||||||
|
System.out.println("Alle Mitarbeiter arbeiten:");
|
||||||
|
for (IMitarbeiter mitarbeiter : mitarbeiterFeld) {
|
||||||
|
mitarbeiter.arbeitenOhneMurren();
|
||||||
|
}
|
||||||
|
System.out.println();
|
||||||
|
|
||||||
|
// 4.3f
|
||||||
|
System.out.println("=== 4.3f ===");
|
||||||
|
System.out.println(Arrays.asList(lehrbeauftragtenFeld));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* main-Methode
|
||||||
|
* Erstellt eine Instanz der TestKlasse
|
||||||
|
*/
|
||||||
|
public static void main(String[] args) {
|
||||||
|
new TestKlasse();
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user