zur nächsten Seite  zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Siehe unten.


Vollständige Methoden

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 validen 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;
  }
}

Frage 7:

(Rückblick: ) Was bedeutet final in Java?


zur nächsten Seite  zum Inhaltsverzeichnis   zur nächsten Seite