This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ## Step 1: Erzeugen der Klasse 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`. ```java {linenumbers} 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()`. ``` Java 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. ``` Java 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. \<wrap hi\>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.\</wrap\> ``` Java 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(); } } ```