„Okay. Letztes Mal haben wir uns mit Klassen beschäftigt. Heute möchte ich dir erklären, wie man Objekte erstellt. Das ist ganz einfach. Du schreibst das Schlüsselwort new und dann den Namen der Klasse, von der du ein Objekt anlegen möchtest.“

Beispiel
Cat cat = new Cat();
Reader reader = new BufferedReader(new InputStreamReader(System.in));
InputStream is = new FileInputStream(path);

„Das weiß ich doch schon.“

„Ich weiß, dass du das tust. Hör weiter zu.“

„Beim Anlegen eines Objekts kannst du verschiedene Parameter in Klammern übergeben. Darüber erfährst du später mehr. Werfen wir zuerst einen Blick auf die Katze-Klasse:“

Java-Code Beschreibung
class Cat {
    public String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
name ist eine Instanzvariable. Sie verfügt über den public-Zugriffsmodifikator, der sie überall im Projekt sichtbar macht.

Die Methode nameAbrufen ist eine Abfragemethode. Sie gibt den Wert der Instanzvariable name zurück. Der Name der Methode wurde aus der Bezeichnung der Variablen und dem Wort „Abrufen“ mit einem Großbuchstaben gebildet.

Die Methode nameFestlegen ist eine Änderungsmethode. Sie wird verwendet, um der Instanzvariable name einen neuen Wert zuzuweisen. Der Name der Methode wurde aus der Bezeichnung der Variablen und dem Wort „Festlegen“ mit einem Großbuchstaben gebildet. Bei dieser Methode hat der Parameter den gleichen Namen wie die Instanzvariable, so dass wir dem Namen der Instanzvariablen das Wort this voranstellen.

„Was sind diese Abfrage- und Änderungsmethoden?“

„In Java ist es üblich, Variablen vor anderen Klassen zu verbergen. Normalerweise besitzen Variablen, die innerhalb von Klassen deklariert sind, den private-Modifikator.

„Damit andere Klassen den Wert dieser Variablen ändern können, wird für jede von ihnen ein Methodenpaar erstellt: die Abfragemethode und die Änderungsmethode. Die Abfragemethode gibt den aktuellen Wert der Variablen zurück. Die Änderungsmethode legt einen neuen Wert für die Variable fest.

„Und was soll das bringen?“

„Wenn wir nicht wollen, dass jemand den Wert einer Instanzvariablen ändert, können wir einfach keine Änderungsmethode dafür erstellen oder sie private machen. Wir können der Methode außerdem zusätzliche Datenprüfungen hinzufügen. Wenn der übergebene neue Wert ungültig ist, wird nichts verändert.“

„Ach so.“

„Da eine Klasse sehr viele Variablen besitzen kann, enthalten die Namen der Abfrage- und Änderungsmethoden normalerweise die Namen der Variablen, mit denen sie sich befassen.“

„Wenn eine Variable ‚name‘ heißt, dann werden die Methoden nameAbrufen und nameFestlegen usw. genannt.“

„Ach so. Klingt nachvollziehbar.“

„Hier sind ein paar weitere Beispiele für die Arbeit mit einem neu erstellten Objekt:“

Schritt Code Beschreibung
1
new Cat();
Erstelle ein Cat-Objekt
2
Cat catOscar = new Cat();
Speichere ein Cat-Objekt in der Variable catOscar
3
catOscar.name = "Oscar";
catOscar.age = 6;
catOscar.weight = 4;
Befülle das Objekt mit Daten: Name, Alter, Gewicht
4
catOscar.sleep();
Rufe eine Methode des Objekts auf
5
catOscar.fight(catSmudge);
Sorge dafür, dass die Objekte interagieren.