erstellt 04.06.03; überarbeitet 21.11.2015; übersetzt 24.06.03; überarbeitet 14.02.05, 03.05.2024. 29.05.24
Wir erzeugen eine Klasse Gewicht
,
die ein Array der Gewichtsmessungen einer Person enthält,
aufgenommen an aufeinanderfolgenden Tagen eines Monats.
Wir vervollständigen den Konstruktor in dem folgenden Programm,
so dass er ein neues Array daten
konstruiert
und dann Werte über den Parameter init
nach daten
kopiert.
Ein Objekt der Klasse Gewicht
soll über sein eigenes Arrayobjekt verfügen. Wir wollen nicht, dass ein Gewicht
-Objekt bloß auf ein Array in main()
verweist.
Also wäre daten = init
nicht korrekt. Wenn wir das tun würden, wäre das Objekt abhängig von dem was main()
mit dem Array tun würde.
Dann vervollständigen wir die toString()
Methode.
class Gewicht { private int[] daten; // Konstruktor public Gewicht(int[] init) { // konstruiert ein Array mit der gleichen Länge // wie das durch init referenzierte. daten = new .... // kopiert die übergebenen Werte // nach daten. for (int j.....) { daten[j] = } } //Ausgabe public String toString() { } } public class GewichtTester { public static void main ( String[] args ) { int[] werte = { 98, 99, 98, 99, 100, 101, 102, 100, 104, 105, 105, 106, 105, 103, 104, 103, 105, 106, 107, 106, 105, 105, 104, 104, 103, 102, 102, 101, 100, 102 }; Gewicht juni = new Gewicht( werte ); System.out.println( juni ); werte[0] = 999; // einen Wert im lokalen Array ändern System.out.println( juni ); // das sollte das gleiche ausgeben // wie das erste println } }
Zurück zum Inhaltsverzeichnis.
Wir fügen jetzt der Klasse eine durchschnitt()
Methode hinzu.
Dabei verwenden wir Integer-Arithmetik.
class Gewicht { . . . int durchschnitt() { . . . } public static void main ( String[] args ) { int[] werte = { 98, 99, 98, 99, 100, 101, 102, 100, 104, 105, 105, 106, 105, 103, 104, 103, 105, 106, 107, 106, 105, 105, 104, 104, 103, 102, 102, 101, 100, 102}; Gewicht juni = new Gewicht( werte ); int durchschnitt = juni.durchschnitt(); System.out.println("Durchschnitt = " + durchschnitt ); } }
Um die Methode zu überprüfen, initialisieren wir das Array mit 10 Werten, die einen leicht zu berechnenden Durchschnitt ergeben.
Zurück zum Inhaltsverzeichnis.
Wir fügen eine weitere Methode hinzu, die den Durchschnitt für einen Teilbereich von Tagen berechnet. Die Signatur der Methode sieht so aus:
int subDurchschnitt( int start, int ende );
Wir machen den Bereich inklusive,
das heißt, es werden alle Tage von
start
bis inklusive ende
addiert.
Der erste Tag des Monats befindet sich in der Arrayzelle mit dem Index 0. Wir sollten die Ergebnisse überprüfen.
Wir verwenden diese Methode in main()
,
um den Durchschnitt der ersten Hälfte des Monats
und dann den der zweiten Hälfte des Monats zu berechnen.
Wir geben sowohl die beiden Durchschnittswerte als auch die
Differenz zwischen ihnen aus.
Wenn der Monat eine ungerade Zahl an Tagen hat,
übernehmen wir den mittleren Tag in beide Durchschnittswerte.
Zurück zum Inhaltsverzeichnis.
Ende der Aufgaben