> ## Documentation Index
> Fetch the complete documentation index at: https://docs.baenninger.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Objektorientierte Programmierung

<AccordionGroup>
  <Accordion title="Paradigma">
    Objektorientierte Programmierung ist ein [Programmierparadigma ](#user-content-fn-1)\[^1]basierend auf dem Konzept von Objekten.
  </Accordion>

  <Accordion title="Objekte">
    Wir verwenden Objekte, um reale oder abstrakte [Merkmale ](#user-content-fn-2)\[^2]zu **modellieren** bzw. zu beschreiben.
  </Accordion>

  <Accordion title="Properties und Methoden">
    Objekte können Daten (Properties) und Code (Methoden) beinhalten. Wenn wir Objekte nutzen, packen wir die **Daten und das entsprechende Verhalten** in einen Block.
  </Accordion>

  <Accordion title="Self-Contained">
    In OOP sind Objekte **in sich geschlossene** Codeteile.
  </Accordion>

  <Accordion title="Baublöcke">
    Objekte sind **Baublöcke** von Applikationen und **interagieren** miteinander.
  </Accordion>

  <Accordion title="API">
    Interaktionen erfolgen über eine **öffentliche Schnittstelle** (API): Methoden, auf die der Code **ausserhalb** des Objekts zugreifen und sie zur Kommunikation mit dem Objekt nutzen kann.
  </Accordion>

  <Accordion title="Organisation">
    OOP wurde mit dem Ziel entwickelt, Code zu organisieren, um ihn flexibler und wartbarer zu machen ("Spaghetti-Code" vermeiden).
  </Accordion>
</AccordionGroup>
