Siehe unten.
Getters und Setters wären einfach, wenn wir Fehler ignorieren könnten. Aber das können wir nicht. Es gibt verschiedene Möglichkeiten mit fehlerhaften Parametern umzugehen.
In dem Code unten gibt getTemp()
999 zurück.
wenn tagImMonat
außerhalb des gültigen Bereichs ist oder
der angegebene Tag keine gültigen Daten hat.
Es ist schlechte Programmpraxis eine spezielle Zahl wie diese überall verstreut im Code zu haben.
Richtige Programme können Hundertausende Codezeilen haben und solche "magischen Zahlen"
laden zu Fehler ein und verursachen Verwirrung.
Siehe dazu die nächste Seite
setTemp()
gibt true
zurück, wenn die Operation erfolgreich war,
andernfalls gibt sie false
zurück.
Das ist eine feine Technik, aber diese kann nicht für get-Methoden verwendet werden.
public class Monat { // Instanzvariablen private int monat; // 1 == Januar private int jahr; // Jahr als int, z.B. 2017 private int tageImMonat; // Anzahl der Tage in diesem Monat // Temperatur Daten private int[] temp; //Temperatur Tag 1 in temp[1] private boolean[] valide; // Konstruktor public Monat( int monat, int jahr) . . . // Getters und Setters public int getTemp( int tag ) { if ( tag > 0 && tag <= tageImMonat && valide[tag] ) return temp[ tag ]; else return 999; // "Magische" Zahl, wird in Kürze verbessert } public boolean setTemp( int tag, int grad ) { if ( tag > 0 && tag <= tageImMonat ) { temp[tag] = grad; valide[tag] = true; return true; } else return false; } }
(Rückblick: ) Was bedeutet final
in Java?