MINT lernen

Klassen und Objekte

Ein Bauplan, beliebig viele Haustiere — wie baut Java aus einer Klasse lauter eigenständige Objekte?

1

Bauplan und Exemplar

  • Klasse:Bauplan für gleichartige Dinge — legt fest, welche Attribute (Eigenschaften) und Methoden (Fähigkeiten) jedes Exemplar hat.
  • Objekt:ein Exemplar, das nach dem Bauplan gebaut wurde — mit eigenen Attributwerten.
  • Beispiel:Klasse Haustier mit name, alter, mahlzeiten und den Methoden fuettern(), geburtstag().
  • Objektkarte:oben unterstrichen bello: Haustier (Objektname: Klasse), darunter die aktuellen Werte.
  • Wie in Python:auch dort gibt es class — in Java steht sogar jedes Programm in einer Klasse.
bello: Haustier
  • name = "Bello"
  • alter = 3
  • mahlzeiten = 0
mia: Haustier
  • name = "Mia"
  • alter = 5
  • mahlzeiten = 2

Gleicher Bauplan, gleiche Attribute — aber jedes Objekt hat seine eigenen Werte.

2

Objekte erzeugen und benutzen

  • Typ und Name:links steht die Klasse als Datentyp, dann der Variablenname: Haustier bello.
  • new:erzeugt ein neues Objekt im Speicher.
  • Konstruktor:Haustier("Bello", 3) setzt die Startwerte — Anzahl, Reihenfolge und Typen wie in der Klasse festgelegt.
  • Verweis:die Variable enthält nicht das Objekt selbst, sondern einen Verweis (Pfeil) darauf.
  • Methodenaufruf:bello.fuettern(); — Objekt, Punkt, Methode. Nur bello ändert sich, mia bleibt, wie sie ist.
public class Haustier {
    private String name;
    private int alter;
    private int mahlzeiten;

    public Haustier(String name, int alter) {
        this.name = name;
        this.alter = alter;
    }
    public void fuettern() {
        mahlzeiten = mahlzeiten + 1;
    }
    public void geburtstag() {
        alter = alter + 1;
    }
}

Herleitung:

bello = Haustier("Bello", 3)
| Typ davor
Start: so erzeugt Python ein Objekt.
Haustier bello = Haustier("Bello", 3)
| new ergänzen
Java will wissen, welchen Typ die Variable hat.
Haustier bello = new Haustier("Bello", 3)
| ; anhängen
new fordert Speicher für ein neues Objekt an und ruft den Konstruktor auf.
Haustier bello = new Haustier("Bello", 3);
Ergebnis
Jede Anweisung endet mit einem Semikolon.

Baue in der Objektfabrik eine new-Anweisung: Ziehe die Bausteine in die Lücken — oder tippe erst eine Lücke und dann einen Baustein an (Tastatur: Pfeil hoch/runter in einer Lücke). „Erzeugen“ übersetzt die Zeile wie javac. Klappt es, entsteht das Objekt im Speicher; wähle es an und rufe Methoden auf.

Objektfabrik

Neue Zeile in main

Konstruktor der Klasse: Haustier(String name, int alter)

    $ javac Main.java

    Halte fest: Ein Objekt entsteht nur mit new und passenden Werten für den Konstruktor. Jede Variable verweist auf ihr Objekt — ein Methodenaufruf ändert nur dieses eine Objekt.

    Merke

    Objekt erzeugen und benutzen: Klasse name = new Klasse(Werte); — danach name.methode();

    3

    Allgemeine Hinweise

    new nicht vergessen

    Ohne new sucht Java eine Methode namens Haustier — und meldet cannot find symbol.

    Groß und klein

    Klassen beginnen mit einem Großbuchstaben (Haustier), Variablen mit einem kleinen (bello). haustier ist für Java ein ganz anderer Name.

    Variablenname ≠ Attribut name

    In Haustier rex = new Haustier("Mia", 1); heißt die Variable rex, das Attribut name aber „Mia“. Wähle beides passend.

    Videos