Step 1: Erzeugen der Klasse

**This is an old revision of the document!**

Lass uns zunächst die Klasse vereinfachen und all die noch unbekannten Konzepte entfernen.

Übrig bleibt eine aufgeräumte Klasse mit zwei Attributen (name und alter) sowie einer Methode bellen.

public class Hund {
    // Attribute
    String name;
    int alter;
 
    // Methoden
    void bellen() {
        System.out.println(name + " sagt: Wuff!");
    }
 
    public static void main(String[] args) {
        Hund meinHund = new Hund();
        meinHund.name = "Bello";
        meinHund.bellen();
    }
}

Step 2: Erzeugen eines Objekts

Wir können nun ein Objekt (Instanz) der Klasse Hund erzeugen.

Analog zur Vorgehensweise bei der Deklaration und Initialisierung von Variablen, bsp. einer Ganzzahlt int x = 5, erzeugen wir eine Variable meinHund.

Diese Variable meinHund hat als Datentyp die Klasse Hund und wir initialisieren die Variable, indem wir ein neues Objekt der Klasse erzeugen: new Hund().

public class Hund {
    // Attribute
    String name;
    int alter;
 
    // Methoden
    void bellen() {
        System.out.println(name + " sagt: Wuff!");
    }
 
    public static void main(String[] args) {
        Hund meinHund = new Hund();
        meinHund.name = "Bello";
        meinHund.bellen();
    }
}

Step 3: Zuweisung von Werten an die Attribute

Nun haben wir ein Objekt meinHund, das alle Eigenschaften der Klasse Hund als Anlage in sich trägt. Allerdings fehlen noch konkrete Werte.

Diese weisen wir bsp. in Zeile 13 zu: Hier bekommt das Objekt meinHund den spezifischen Namen “Bello” zugewiesen.

Spoiler: Dieser Zugriff wird in Zukunft so nicht mehr klappen. Wir werden über sog. Setter oder gleich über Konstruktoren die Werte zuweisen. Aber für den Augenblick klappt das auch so und es ist auch kein Code, den der Java-Compiler ablehnt.

public class Hund {
    // Attribute
    String name;
    int alter;
 
    // Methoden
    void bellen() {
        System.out.println(name + " sagt: Wuff!");
    }
 
    public static void main(String[] args) {
        Hund meinHund = new Hund();
        meinHund.name = "Bello";
        meinHund.bellen();
    }
}

Step 4: Ausführen einer Methode

Nun, da wir ein Objekt der Klasse Hund mit richtigem, echten Hundenamen haben, können wir die Klassenmethode bellen von unserem Hund meinHund ausführen lassen. Weniger verdreht ausgedrückt lassen wir unseren Hund bellen und es wird uns auch gleich mit geliefert, wie der Hund denn heißt.

Es geht hier wohlgemerkt nicht darum, wie der Variablenname des erzeugten Objekts lautet. Es geht darum, wie der konkrete Name des erzeugten Objekts meinHund lautet.

public class Hund {
    // Attribute
    String name;
    int alter;
 
    // Methoden
    void bellen() {
        System.out.println(name + " sagt: Wuff!");
    }
 
    public static void main(String[] args) {
        Hund meinHund = new Hund();
        meinHund.name = "Bello";
        meinHund.bellen();
    }
}