Home > Informatik > Stufe EF > Folge 7 (Arrays)

7.3 Objekt-Arrays verstehen

Arrays - Objekt-Arrays - besser verstehen - Held - Aufgaben - Polymorphie

1. Deklaration und Initialisierung

Schauen wir uns den Quelltext von Inventar genauer an. Am Anfang wird die Variable g deklariert und im Konstruktor initialisiert:

public class Inventar
{
    Gegenstand[] g;
    
    public Inventar()
    {
       g = new Gegenstand[12];

Der Wert der Variable g ist eine Referenz (Adresse) im Speicher des Rechners. Da das Array noch nicht initialisiert wurde, ist dieser Referenzwert noch nicht festgelegt und hat daher den Standardwert null.

Erklärung siehe folgenden Text

Darstellung eines Objekt-Arrays direkt nach der Deklaration und Initialisierung
Autor: Ulrich Helmich 2026, Lizenz: Public domain.

Nach der Initialisierung wird das Array im Speicher des Rechners erzeugt. Da es sich um ein Objekt-Array handelt, werden alle Elemente mit dem Wert null initialisiert. In der Referenvariablen g steht jetzt quasi die Adresse des ersten Arrayelements g[0]; eine solche Adresse wird in Graphiken meistens durch einen Pfeil symbolisiert. Im Objektinspektor von BlueJ ist das auch der Fall.

➥Referenzen

Wenn Sie mehr über Zeiger, Pointer oder Referenzen wissen möchten, gehen Sie auf diese Seite, die ich eigentlich für die Stufe Q1 geschrieben habe. Engagierte Schüler(innen) sollten aber kein Problem mit dieser Seite haben.

2. Erzeugung der Arrayelemente

      g[ 0] = new Gegenstand(1,"Hammer",20,3,567);
      g[ 1] = new Gegenstand(3,"Helm",0,13,230);
      u.s.w.

Hier müssen wir wirklich zwölf Zeilen hinschreiben, weil ja jeder Gegenstand einen Typ, einen Namen und drei weitere Werte benötigt, die sich der Computer nicht einfach ausdenken kann. Eine for-Schleife würde hier also überhaupt keinen Sinn machen!

Erklärung siehe folgenden Text

Darstellung eines Objekt-Arrays direkt nach der Erzeugung von zwei Objekten
Autor: Ulrich Helmich 2026, Lizenz: Public domain.

Nach der Erzeugung der ersten beiden Gegenstands-Objekte verweisen die Arrayelemente g[0] und g[1] auf die Stellen im Speicher, an denen sich die beiden Objekte befinden.

Wenn Sie sich selbst davon überzeugen wollen, dass der Array g tatsächlich so aufgebaut ist, wie im Text beschrieben, starten Sie doch einfach mal den Objektinspektor von BlueJ und doppelklicken Sie auf das erzeugte Objekt der Klasse Inventar.

Aufruf des Objektinspektors

Aufruf des Objekt-Inspektors zur Analyse des Objekt-Arrays"
Autor: Ulrich Helmich, Lizenz: Public domain.

Das Inventar-Objekt enthält ein Attribut Gegenstand g[], unser Objekt-Array. Klicken Sie dann auf den Pfeil, der im Objektinspektor zu sehen ist. Es erscheint ein größerer Kasten, der alle zwölf Arrayelement zeigt, außerdem die Länge des Arrays (12).

Klicken Sie nun auf den ersten Pfeil, der für das Arrayelement g[0] steht. Es erscheint ein dritter roter Kasten. Dieser repräsentiert nun endlich ein konkretes Objekt, nämlich einen Gegenstand.

Diese Version der Klasse Gegenstand entspricht nicht ganz der Klasse Gegenstand, die wir in den bisherigen Übungen erstellt haben. Der Gegenstandstyp fehlt noch, dafür gibt es aber ein Attribut zustand, in dem gespeichert ist, zu wie viel Prozent der Gegenstand noch intakt ist.

Seitenanfang
Weiter mit "Der Held wird verletzt" ...