Objekte einer Klasse
Die Klasse ist der Bauplan eines Objekts. Es lassen sich beliebig viele Objekt nach einem Bauplan erzeugen.
Objekte einer Klasse
Schön, wir haben ein Objekt vom Typ java.awt.Frame mit new Frame() erzeugt. Das Objekt hat einen anfänglichen Zustand, der uns noch nicht völlig zufrieden stellt. So besitzt es keinen Fenstertitel, seine Größe ist 0x0 Pixel und vor allem: es ist unsichtbar. Wir haben das Objekt daher verändern. Da wir es noch brauchen, müssen wir es zunächst einmal festhalten. Das tun wir, indem wir es einer Variablen zuweisen. Die Variable war wiedas Objekt vom Typ „java.awt.Frame“ und heißt: „fenster“:
Frame fenster = new Frame();
Grundsätzlich können wir Objekte nur gebrauchen, wenn wir eine Referenz auf sie haben, d.h. eine Variable auf sie verweist. Im folgenden Beispiel verwenden wir ein Array, um Referenzen auf viele Objekte zu halten:
Was Sie sehen ist: Von einer Klasse kann ich beliebig viele Objekte erzeugen. Eine Klasse ist nicht das Objekt, sondern der „Bauplan“ dafür. Die einzelnen Objekte können, obwohl sie aus der gleichen Klasse erzeugt wurden, unterschiedliche Eigenschaften haben. Unsere 100 Frames haben zum Beispiel alle eine andere Position auf dem Schirm.
Beachten Sie bitte auch die „Import“ - Deklaration am Anfang des Codes. Klassen, die wir mit "import" ausserhalb der Klasse mit vollem Packagenamen aufzählen, können im Code ohne Packagenamen verwendet werden. Sie schreiben dann einfach:
Frame fenster = new Frame();
statt
java.awt.Frame frame= new java.awt.Frame();
Das spart eine Menge Schreibarbeit.
Um alle Klassen einesPackages verfügbar zu machen nutzen Sie:
import java.awt.*;
Spart noch mehr Schreibarbeit, wird aber dann schon ziemlich unübersichtlich. Dabei werden allerdings nicht die Klassen der Unterpaket (z.B. java.awt.event.*) importiert.
Aufgabe: MoreFrames
Schreiben Sie das Programm MoreFrames so um, dass die Fenster in der umgekehrten Reihenfolge geschlossen werden, d.h. die Fenster, die zuletzt geöffnet wurden, werden zuerst geschlossen.
Musterlösung: java1.aufg.kap_2.MoreFrames