You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
164 lines
5.0 KiB
Java
164 lines
5.0 KiB
Java
package com.company.lösungen;
|
|
|
|
public class meeting {
|
|
// Klasse zur Repräsentation eines Meeting-Protokolls
|
|
public class MeetingMinutes {
|
|
// Deklaration privater Variablen
|
|
private String date;
|
|
private String timeframe;
|
|
private String room;
|
|
private String[] participants;
|
|
private Item[] items;
|
|
|
|
// Konstruktor, der die benötigten Daten per
|
|
// Vorschrift beim Anlegen eines neuen Objekts
|
|
// erforderlich macht.
|
|
public MeetingMinutes(
|
|
String date,
|
|
String timeframe,
|
|
String room,
|
|
String[] participants
|
|
) {
|
|
this.date = date;
|
|
this.timeframe = timeframe;
|
|
this.room = room;
|
|
this.participants = participants;
|
|
|
|
// Leere Liste erzeugen
|
|
this.items = new Item[0];
|
|
}
|
|
|
|
// Methode zum Hinzufügen eines Item-Objekts
|
|
public void add(Item item) {
|
|
// Erzeuge vergrößertes Array
|
|
Item[] newItems = new Item[items.length + 1];
|
|
|
|
// Kopiere Elemente rüber
|
|
for (int i = 0; i < items.length; i = i + 1) {
|
|
newItems[i] = items[i];
|
|
}
|
|
|
|
// Belege letztes Element mit neuem Item
|
|
newItems[newItems.length - 1] = item;
|
|
|
|
// Ersetze alte mit neuer Liste
|
|
items = newItems;
|
|
}
|
|
|
|
// Methode zur Repräsentation eines Meetings
|
|
public String toString() {
|
|
String output = "Meeting: " + date + " (" + timeframe + "), " + room + "\n";
|
|
output = output + "Participants: ";
|
|
|
|
// Gehe Teilnehmerliste durch
|
|
for (int i = 0; i < participants.length; i = i + 1) {
|
|
output = output + participants[i];
|
|
|
|
// Komma bis zum letzten Element setzen
|
|
if (i < participants.length - 1) {
|
|
output = output + ", ";
|
|
}
|
|
}
|
|
output = output + "\n-----------\n";
|
|
|
|
// Alle Diskussionspunkte durchgehen
|
|
for (int i = 0; i < items.length; i = i + 1) {
|
|
output = output + items[i].toString() + "\n";
|
|
}
|
|
|
|
return output;
|
|
}
|
|
}
|
|
|
|
// Abstrakte Klasse Item
|
|
public abstract class Item {
|
|
// Deklaration privater Variablen
|
|
String content;
|
|
|
|
// Konstruktor, der den Content verlangt
|
|
public Item(String content) {
|
|
this.content = content;
|
|
}
|
|
|
|
// Methode zur Repräsentation des Items
|
|
public String toString() {
|
|
return this.content;
|
|
}
|
|
}
|
|
|
|
// Öffentliche Klasse zur Repräsentation eines Diskussionsbeitrags.
|
|
// Es wird von der Klasse Item geerbt.
|
|
public class DiscussionItem extends Item {
|
|
// Der Konstruktor erwartet den Inhalt
|
|
public DiscussionItem(String content) {
|
|
// und übergibt diesen an die Basisklasse
|
|
super(content);
|
|
}
|
|
|
|
// Überschreiben der Repräsentation mit der spezifischen Version
|
|
// für einen Diskussionsbeitrag.
|
|
public String toString() {
|
|
return "Discussion: " + super.toString();
|
|
}
|
|
}
|
|
|
|
// Klasse, die eine Entscheidung repräsentiert und von der Klasse
|
|
// Item erbt.
|
|
public class DecisionItem extends Item {
|
|
// Konstruktor, der den Content verlangt
|
|
public DecisionItem(String content) {
|
|
// und die Basisklasse damit aufruft
|
|
super(content);
|
|
}
|
|
|
|
// Überschreiben der Repräsentation mit der spezifischen Version
|
|
// für einen Entscheidungsbeitrag.
|
|
public String toString() {
|
|
return "Decision: " + super.toString();
|
|
}
|
|
}
|
|
|
|
// Klasse zur Repräsentation einer Aktion, die von der Klasse
|
|
// Item ableitet.
|
|
public class ActionItem extends Item {
|
|
// Öffentlicher Konstruktor, der zur Angabe des Inhalts verpflichtet.
|
|
public ActionItem(String content) {
|
|
// und an die Basisklasse weiterleitet
|
|
super(content);
|
|
}
|
|
|
|
// Überschreiben der Repräsentation mit der spezifischen Version
|
|
// für einen Aktionsbeitrag.
|
|
public String toString() {
|
|
return "Action: " + super.toString();
|
|
}
|
|
}
|
|
|
|
// Startpunkt des Hauptprogramms
|
|
// Hier werden die implementierten Klassen zu Demonstrations- und
|
|
// Testzwecken instanziiert und verwendet.
|
|
public void setup() {
|
|
String[] participants = {
|
|
"Luigi Lo Iacono",
|
|
"Michael Schneider",
|
|
"Stephan Wiefling"
|
|
};
|
|
|
|
MeetingMinutes meeting = new MeetingMinutes(
|
|
"10.10.2017",
|
|
"10-12 Uhr",
|
|
"R123",
|
|
participants
|
|
);
|
|
|
|
meeting.add(new DiscussionItem("Veröffentlichung Buch"));
|
|
meeting.add(new DecisionItem("Dem Antrag wurde einstimmig zugestimmt."));
|
|
meeting.add(
|
|
new ActionItem("Bis zum nächsten Meeting muss Kapitel 9 fertig gestellt sein.")
|
|
);
|
|
|
|
System.out.println(meeting);
|
|
}
|
|
|
|
}
|