Zustand: Unterschied zwischen den Versionen

Aus FLBK-Wiki
Zur Navigation springen Zur Suche springen
Die Seite wurde neu angelegt: „== Einführung == Ein Objekt ist eine Instanz einer Klasse, die Daten in Form von Attributen (auch Felder oder Instanzvariablen genannt) speichert. Der Zustand eines Objekts wird durch die aktuellen Werte dieser Attribute definiert. Was ein Objekt während seiner Lebenszeit besonders interessant macht, sind die Veränderungen dieser Attribute – sie spiegeln die Dynamik des Programms wider. Stellen Sie sich e…“
 
Keine Bearbeitungszusammenfassung
Zeile 45: Zeile 45:
* Zustandsänderungen: Während der [[Laufzeit]] des [[Programm]]s können die Attribute des Objekts durch Methodenaufrufe verändert werden. Dies ist der Kern des dynamischen Verhaltens.
* Zustandsänderungen: Während der [[Laufzeit]] des [[Programm]]s können die Attribute des Objekts durch Methodenaufrufe verändert werden. Dies ist der Kern des dynamischen Verhaltens.
* Unerreichbarkeit und Garbage Collection: Wenn kein Teil des Programms mehr auf ein Objekt zugreifen kann (weil keine Referenzen mehr darauf zeigen), wird es vom Garbage Collector als "nicht mehr benötigt" markiert.
* Unerreichbarkeit und Garbage Collection: Wenn kein Teil des Programms mehr auf ein Objekt zugreifen kann (weil keine Referenzen mehr darauf zeigen), wird es vom Garbage Collector als "nicht mehr benötigt" markiert.
[[Kategorie:Informatik]]
[[Kategorie:AHR_I_Informatik_LK]]
[[Kategorie:FI_I_SDM]]

Version vom 6. September 2025, 10:52 Uhr

Einführung

Ein Objekt ist eine Instanz einer Klasse, die Daten in Form von Attributen (auch Felder oder Instanzvariablen genannt) speichert. Der Zustand eines Objekts wird durch die aktuellen Werte dieser Attribute definiert. Was ein Objekt während seiner Lebenszeit besonders interessant macht, sind die Veränderungen dieser Attribute – sie spiegeln die Dynamik des Programms wider.

Stellen Sie sich ein Objekt wie eine reale Gegenstand vor, zum Beispiel einen Kunden in einem Online-Shop. Ein Kunde-Objekt könnte Attribute haben wie:

  • name (z. B. "Max Mustermann")
  • email (z. B. "max.mustermann@example.com")
  • einkaufswagenInhalt (eine Liste von Produkten)
  • istAngemeldet (ein Wahrheitswert, true oder false)

Der Zustand dieses Kunden-Objekts zu einem bestimmten Zeitpunkt ist die Gesamtheit der Werte all seiner Attribute. Wenn der Kunde etwas in seinen Einkaufswagen legt, ändert sich der Wert des Attributs einkaufswagenInhalt. Das Objekt hat seinen Zustand verändert.

Attribute eines Objekts können sich auf verschiedene Weisen ändern, meistens durch Methodenaufrufe. Methoden sind Aktionen, die ein Objekt ausführen kann und die oft dazu dienen, seinen eigenen Zustand zu modifizieren.

Zustandsänderung

Änderung durch eigene Methoden

Eine Methode des Kunde-Objekts könnte produkteZumWagenHinzufuegen(Produkt produkt) lauten. Wenn diese Methode aufgerufen wird, wird das übergebene Produkt-Objekt zur Liste im einkaufswagenInhalt-Attribut hinzugefügt.

public class Kunde {
    private String name;
    private List<Produkt> einkaufswagenInhalt = new ArrayList<>();
    private boolean istAngemeldet;

    // ... Konstruktor und andere Methoden ...

    public void produkteZumWagenHinzufuegen(Produkt produkt) {
        this.einkaufswagenInhalt.add(produkt); // Attribut-Änderung!
        System.out.println(produkt.getName() + " zum Warenkorb hinzugefügt.");
    }

    public void abmelden() {
        this.istAngemeldet = false; // Attribut-Änderung!
        System.out.println(this.name + " hat sich abgemeldet.");
    }
}

Änderung durch externe Objekte/Methoden

Manchmal können auch andere Teile des Programms den Zustand eines Objekts beeinflussen, insbesondere wenn Attribute nicht korrekt gekapselt sind. In gut gestalteten Programmen sollte der Zugriff auf Attribute jedoch über öffentliche Methoden gesteuert werden, um die Integrität des Objekts zu wahren.

Der Lebenszyklus und Zustandsveränderungen

Zustands-Veränderungen finden im Kontext eines Objektlebenszyklus statt:

  • Aufgezählter Listeneintrag

Objekterzeugung: Wenn ein neues Objekt mit new und Konstruktor-Aufruf erstellt wird, hat es einen anfänglichen Zustand, der durch den Konstruktor festgelegt wird.

  • Zustandsänderungen: Während der Laufzeit des Programms können die Attribute des Objekts durch Methodenaufrufe verändert werden. Dies ist der Kern des dynamischen Verhaltens.
  • Unerreichbarkeit und Garbage Collection: Wenn kein Teil des Programms mehr auf ein Objekt zugreifen kann (weil keine Referenzen mehr darauf zeigen), wird es vom Garbage Collector als "nicht mehr benötigt" markiert.