Siehe unten
Die vollständigen Methoden scannen die Arrays, dabei zählen und fügen sie nur die gültigen Tage hinzu.
Einen Error Flag in berechneDurchschnitt()
zurückzugeben ist etwas umständlich. Besser wäre es Fehler mit Exception
s zu handhaben. Das wird in späteren Kapiteln besprochen.
import java.util.*; class Monat { // Konstante final int ERRORFLAG = 999; // 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; . . . // die Anzahl der Tage mit gueltigen Daten zaehlen public int anzahlValideTage() { int anzahl = 0; for ( int tag = 1; tag <= tageImMonat; tag++ ) if ( valide[tag] ) anzahl++; return anzahl; } // Durchschnittstemperatur fuer alle gueltigen Tage berechnen public double berechneDurchschnitt() { int summe = 0; int anzahl = 0; for ( int tag=1; tag <= tageimMonat; tag++ ) { if ( valide[tag] ) { summe += temp[tag]; anzahl++; } } if ( anzahl > 0 ) return (double)summe/anzahl; else return ERRORFLAG; } }
Was passiert mit einem Monat
-Objekt, wenn das Programm beendet ist?