OOP
Kurz: Objektorientierte Programmierung — das zentrale Paradigma von Java, bei dem Programme aus Objekten mit Zustand (Feldern) und Verhalten (Methoden) statt aus reinen Funktionsabläufen bestehen.
Genauer: Java erzwingt OOP strenger als viele andere Sprachen: jede Methode muss innerhalb einer Klasse stehen, es gibt keine “freien” Funktionen. Die vier Grundpfeiler sind Kapselung (Encapsulation), Vererbung (Inheritance), Polymorphie (Polymorphism) und Abstraktion (Abstraction).
Im Detail
// Kapselung: Zustand geschützt, kontrollierter Zugriff
class Konto {
private double saldo;
public double getSaldo() { return saldo; }
}
// Vererbung: Basisverhalten wiederverwenden
class Sparkonto extends Konto {
double zinssatz;
}
// Polymorphie: dieselbe Methode, unterschiedliches Verhalten je nach tatsächlichem Typ
class Tier { void laut() { System.out.println("..."); } }
class Katze extends Tier { void laut() { System.out.println("Miau"); } }
Tier t = new Katze();
t.laut(); // "Miau" - die überschriebene Version läuft
// Abstraktion: Vertrag ohne konkrete Umsetzung
interface Zahlungsmittel { void bezahlen(double betrag); }Diese vier Grundpfeiler wirken zusammen, nicht isoliert: Vererbung und Polymorphie ermöglichen z. B. eine Liste vom Typ List<Tier>, in der beliebige konkrete Tierarten stehen können, während jeder Aufruf von .laut() automatisch die richtige, überschriebene Version je nach tatsächlichem Objekt-Typ nutzt — der aufrufende Code muss die konkrete Unterklasse gar nicht kennen. Java erzwingt das OOP-Paradigma dabei strikter als etwa JavaScript oder Python: selbst eine simple main-Methode muss innerhalb einer Klasse stehen, es gibt keine wirklich freistehenden, klassenlosen Funktionen. Andere Programmiersprachen setzen teils ganz andere Paradigmen um (funktional: Haskell, prozedural: klassisches C) — das sprachunabhängige Grundkonzept “Objektorientierung” selbst ist in OOP (allgemein) beschrieben.
Siehe auch: Classes, Objects, Encapsulation, Inheritance, Polymorphism, Abstraction