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

Antwort:

Wenn wir vergessen die Datei zu schließen, könnten die Daten nicht in die Datei geschrieben werden. Das Schreiben der Daten in eine Datei ist die Aufgabe des Betriebssystems (Operating System, kurz OS). Unser Programm fragt das Betriebssystem nur die I/O zu übernehmen, aber andere Programme könnten ebenfalls I/O anfragen, so dass unsere Anfrage vielleicht warten müsste. Wenn unser Programm beendet wird bevor die I/O durchgeführt wurde, könnte das OS die Daten nicht in die Datei geschrieben haben.


13 Monate pro Jahr

Falls wir die täglichen Höchsttemperaturen für ein ganzes Jahr aufzeichnen wollten, könnten wir ein Objekt Jahr haben, dass aus 12 Monatsobjekten besteht. Es ist zweckmäßig die Monate beginnend mit 1 zu nummerieren. Also wird das Array 13 Zellen haben, wovon die Zelle 0 nicht verwendet wird.

Und wenn wir die Temperaturen für ein Jahrhundert aufzeichnen wollten, hätten wir ein Jahrhundert-Objekt, das aus 100 Jahr-Objekten besteht.

Hier ist eine sehr grobe Skizze für ein Jahr-Objekt:

class Jahr
{

  // Instanzvariablen
  private int   jahr;   // jahr als int, z.B. 2024
  private Monat[] monat;

  public Jahr ( int jahr )
  {
    this.jahr = jahr;
    monat = new Monat[13;]
  }

   . . . .
}

Beachtet, dass jede Zelle des Arrays monat potentiell eine Referenz auf ein Monat-Objekt enthalten kann. Dieses Array könnte als ein Array von Monaten bezeichnet werden, aber tatsächlich enthält es Objektreferenzen.

Das ist anders wie bei den Arrays in Monat wo jede Zelle der Arrays von einem primitiven Typ ist.


Frage 13:

Rückblick: Wie werden Referenzvariablen automatisch initialisiert?


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