# Objekt-Orientierte Programmierung ## Klassen Definitionen von Instanzen einer Objekt-Art - der "Bauplan" - nennt sich `Klasse`. Die Klasse gibt vor, wie dessen Instanzen aufgebaut sind. So könnte bspw. eine Klasse für ein `Auto` in einem GTA-Spiel Eigenschaften wie `Velocity` (Beschläunigung), `Color` (Farbe) oder `Model` (Modell) haben. Will man jedoch kein GTA-Spiel sondern - möglicherweise - ein Programm für einen Auto-Makler erstellen, sind wiederum andere Eigenschaften von Wichtigkeit wie bspw. der `Price` (Preis) oder das `Brand` (die Marke). ## Instanzen Instanzen sind Objekte, die anhand einer [Klasse](#klassen) erstellt wurde. Diese haben alle in der Klasse vorgeschriebene Eigenschaften, Felder und Methoden. Einer Instanz kann man konkrete Werte für die Eigenschaften zuweisen. So könnte man eine Objekt-Instanz `expensiveCar` der `Auto`-Klasse erstellen, welche das `Brand` `BMW` hat und eine Objekt-Instanz `CheapCar`, welche das `Brand` `Škoda` hat. ## Bezeichnungen Sämtliche Komponenten eines Projekts (Variablen (`variable`s), Parameter (`parameter`s), Klassen (`class`es), Felder (`field`s), Eigenschaften (`Property`/Properties) und Methoden (`Method`s)) müssen benannt werden. Hierbei ist wichtig, auf möglichst prägnante Bezeichnungen zurückzugreifen.