Die objektorientierte Programmierung (OOP) modelliert die reale Welt durch Objekte, die Daten und Verhalten kapseln. Eine Klasse ist der Bauplan für Objekte: sie definiert Attribute (Daten) und Methoden (Verhalten). Ein konkretes Objekt heißt Instanz der Klasse. Die OOP fußt auf den vier Säulen Datenkapselung, Vererbung, Polymorphismus und Abstraktion.
Die Klasse Person hat die Attribute name und alter. Der Konstruktor initialisiert sie, Getter und Setter erlauben kontrollierten Zugriff. Die Methode begruessen() beschreibt das Verhalten.
public class Person {
private String name;
private int alter;
public Person(String name, int alter) {
this.name = name;
this.alter = alter;
}
public String getName() { return name; }
public int getAlter() { return alter; }
public void setAlter(int a){ this.alter = a; }
public String begruessen() {
return "Hallo, ich bin " + name + " und " + alter + " Jahre alt.";
}
}
Erzeugung eines Objekts:
Person p = new Person("Anna", 17);
System.out.println(p.begruessen());class Person:
def __init__(self, name, alter):
self._name = name
self._alter = alter
@property
def name(self):
return self._name
@property
def alter(self):
return self._alter
@alter.setter
def alter(self, wert):
self._alter = wert
def begruessen(self):
return f"Hallo, ich bin {self._name} und {self._alter} Jahre alt."
p = Person("Anna", 17)
print(p.begruessen())
In Python markiert ein führender Unterstrich Attribute als privat (Konvention, keine echte Sichtbarkeitsregel). self ist der explizite Verweis auf die aktuelle Instanz und entspricht dem Java-this.
Attribute werden in Java üblicherweise private deklariert, damit sie nur über Methoden geändert werden können. Das verhindert ungültige Zustände (z. B. negatives Alter). Die Sichtbarkeitsmodifizierer in Java sind private, protected, public und package-private (kein Schlüsselwort). Python hat keine echten Modifizierer, nutzt aber Konventionen: _name (intern), __name (name mangling).
Der Konstruktor wird beim Erzeugen mit new automatisch aufgerufen und initialisiert das Objekt. Methoden können Werte zurückgeben (return) oder als Prozedur (void) wirken. Statische Methoden (static) gehören zur Klasse selbst, nicht zu einer Instanz.
Vergessenes this. bei Namensgleichheit zwischen Parameter und Attribut, vergessene Initialisierung im Konstruktor, falsche Sichtbarkeit (alles public) und Verwechslung von Klasse und Objekt sind die häufigsten Prüfungsfehler. In Python ist das Vergessen von self als erstes Argument einer Methode ein klassischer Anfängerfehler.
Zusammenfassung: Klassen sind Bauplan, Objekte sind Instanzen. Attribute halten den Zustand, Methoden definieren das Verhalten, Konstruktoren initialisieren das Objekt.
Abitur-Tipp: Markiere im Code Attribute, Konstruktor, Getter/Setter und Methoden mit verschiedenen Farben – das hilft bei der Analyse fremder Klassen in der Prüfung.