1 // Termin.java
2 import java.util.Objects;
3
4 /** 5 * Termin ist ein Bauplan für Terminentitäten. 6 * Beispielprogramm zur Programmiertechnik 1, Teil 4. 7 * @author H.Drachenfels 8 * @version 30.7.2018 9 */
10 public final class Termin {
11 private Datum wann;
12 private final String was;
13
14 /** 15 * Konstruktor zum Initialisieren einer neuen Terminentität. 16 * Der heimliche Paramter this verweist auf das neue Objekt. 17 * @param wann ist das Datum des Termins (darf nicht null sein) 18 * @param was ist die Beschreibung des Termins (darf nicht null sein) 19 */
20 public Termin(/* final Termin this, */ Datum wann, String was) {
21 this.wann = Objects.requireNonNull(wann, "ungueltiger Termin");
22 this.was = Objects.requireNonNull(was, "ungueltiger Termin");
23 }
24
25 /** 26 * Instanzmethode zum Ändern des Datums eines Termins. 27 * Der heimliche Paramter this verweist auf das Objekt des Aufrufs. 28 * @param wohin ist das neue Datum des Termins (darf nicht null sein) 29 */
30 public void verschieben(/* final Termin this, */ Datum wohin) {
31 this.wann = Objects.requireNonNull(wohin, "ungueltiger Termin");
32 }
33
34 /** 35 * Instanzmethode zum Abfragen des Datums eines Termins. 36 * Der heimliche Paramter this verweist auf das Objekt des Aufrufs. 37 * @return das Datum des Termins 38 */
39 public Datum getDatum(/* final Termin this */) {
40 return this.wann;
41 }
42
43 /** 44 * Instanzmethode zum Abfragen der Beschreibung eines Termins. 45 * Der heimliche Paramter this verweist auf das Objekt des Aufrufs. 46 * @return die Beschreibung des Termins 47 */
48 public String getBeschreibung(/* final Termin this */) {
49 return this.was;
50 }
51 }
52