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

Antwort:

final wird für Konstante verwendet.


Kleine Verbesserung

In dem leicht verbesserten Code wird ERRORFLAG als Rückgabewert verwendet, um einen Fehler zu markieren. Vom Aufrufer wird erwartet, dass er den Rückgabewert überprüft, bevor er ihn verwendet. In einem großen Projekt, könnte der gleiche Wert durchgängig im gesamten Code verwendet werden. Das verbessert die Konsistenz und die Lesbarkeit. Wenn der Wert geändert werden muss, muss die Änderung nur an einer Stelle vorgenommen werden.


public class Monat
{
  // Konstante
  final int ERRORFLAG = 999;

  // Instanzvariablen
  private int   monat;  // 1 == Januar
  private int   jahr;   // Jahr als int, z.B. 2017
  private int   anzahlTageImMonat;   // Anzahl der Tage in diesem Monat

  // Temperatur Daten
  private int[] temp;    //Temperatur Tag 1 in temp[1]
  private boolean[] valide;
  ...

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

  public String toString()
  {
    String str = monat + "." + jahr + "\n";

    for ( int tag = 1;   ; tag++ )
    {
      str += tag + ": ";
      if (  )
        str += temp[tag] ;
      else
        str += "keine Daten";
      str += "\n";
    }
    return str;
  }
  }
}

Amüsante Geschichte: Als das Jahr 2000 näher rückte mussten viele Programme überarbeitet werden, da sie zwei Ziffern für das Jahr verwendet haben. "65" wurde für "1965" usw. verwendet. Nicht initialisierte Jahre waren auf "99" gesetzt worden, was als die Programme geschrieben wurden in weiter Zukunft lag. Aber im Jahr "1999" funktioniert dieser Wert nicht mehr. Viele Videorekorder hörten im Jahr 1999 auf zu funktionieren.


Frage 8:

Natürlich brauchen wir noch eine toString() Methode. Wir vervollständigen sie.


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