Bibliothek

Fach wählen

Themen

Klassen und Objekte

OOP - Klassen und Objekte
Grundbegriffe der OOP

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.

Beispielklasse Person in Java

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());
Dieselbe Klasse in Python
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.

Datenkapselung und Sichtbarkeit

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).

Konstruktoren und Methoden

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.

Häufige Fehler

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.