1 // Termin.java
2 package comparator;
3
4 import java.util.Objects;
5
6 /** 7 * Termin ist ein Bauplan für Terminentitäten. 8 * Termin kann als Oberklasse verwendet werden. 9 * Beispielprogramm zur Programmiertechnik 1, Teil 5. 10 * @author H.Drachenfels 11 * @version 20.12.2018 12 */
13 public class Termin {
14 private Datum wann;
15 private final String was;
16
17 /** 18 * Konstruktor zum Initialisieren einer neuen Terminentität. 19 * @param wann ist das Datum des Termins (darf nicht null sein) 20 * @param was ist die Beschreibung des Termins (darf nicht null sein) 21 */
22 public Termin(Datum wann, String was) {
23 this.wann = Objects.requireNonNull(wann, "ungueltiger Termin");
24 this.was = Objects.requireNonNull(was, "ungueltiger Termin");
25 }
26
27 /** 28 * Instanzmethode zum Ändern des Datums eines Termins. 29 * @param wohin ist das neue Datum des Termins (darf nicht null sein) 30 */
31 public final void verschieben(Datum wohin) {
32 this.wann = Objects.requireNonNull(wohin, "ungueltiger Termin");
33 }
34
35 /** 36 * Instanzmethode zum Abfragen des Datums eines Termins. 37 * @return das Datum des Termins 38 */
39 public final Datum getDatum() {
40 return this.wann;
41 }
42
43 /** 44 * Instanzmethode zum Abfragen der Beschreibung eines Termins. 45 * @return die Beschreibung des Termins 46 */
47 public final String getBeschreibung() {
48 return this.was;
49 }
50
51 @Override
52 /** 53 * Erzeugt einen String "Datum, Beschreibung". 54 * @return die Stringdarstellung des Termins 55 */
56 public String toString() {
57 return String.format("%s, %s", this.wann, this.was);
58 }
59 }
60