Klasse (Programmierung)
Eine Vorlage zur Erstellung von Objekten, die deren Zustand (Variablen) und Verhalten (Methoden) definiert.
Eine Klasse fungiert als benutzerdefinierter Datentyp. Klassen unterstützen die drei Säulen der OOP: Kapselung (Verbergen des internen Zustands durch private/public), Vererbung (Erstellung einer Unterklasse aus einer Basisklasse) und Polymorphie (Behandlung verschiedener Klassen über eine gemeinsame Schnittstelle).
graph LR
Center["Klasse (Programmierung)"]:::main
Pre_object_oriented_programming["object-oriented-programming"]:::pre --> Center
click Pre_object_oriented_programming "/terms/object-oriented-programming"
Rel_object["object"]:::related -.-> Center
click Rel_object "/terms/object"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Erkläre es wie einem 5-Jährigen
Stell dir eine Klasse als Ausstechform für Plätzchen vor und das Objekt als das fertige Plätzchen. Die Form bestimmt das Aussehen. Du kannst damit Hunderte Plätzchen machen. Alle haben die gleiche Form, aber eines hat Schokostreusel, das andere Zuckerguss (das ist ihr individueller Zustand).
🤓 Expert Deep Dive
Bei der Instanziierung wird Speicher auf dem Heap (für Instanzvariablen) zugewiesen. Methoden werden nicht pro Objekt dupliziert; der Compiler übergibt implizit eine Referenz (this oder self) an die Methode. Dynamische Bindung (Polymorphie) wird in Sprachen wie C++ über virtuelle Methodentabellen (vtables) implementiert.
❓ Häufig gestellte Fragen
What is the difference between a class and an object?
A class is the blueprint or definition (the idea). An object is the actual instance created from that blueprint (the physical thing in memory). For example, 'House' is a class, but the specific house you live in is the object.
What is a constructor in a class?
A constructor is a special method inside a class that is automatically called when a new object is created. It is used to set the initial values (state) of the object.
Do all programming languages use classes?
No. While languages like Java, C++, and Python rely heavily on classes (Object-Oriented Programming), other languages use different paradigms. For example, C uses procedural programming, Haskell uses functional programming, and JavaScript originally used prototype-based inheritance.