Objektorientierung und Abstraktionsmechanismen

Geschätzte Lektüre: 3 Minuten 353 Ansichten

Objektorientierte Programmierung (OOP) bietet ein mächtiges Paradigma zur Strukturierung komplexer Software durch Kapselung, Vererbung und Polymorphismus. JavaScript unterstützt sowohl prototypbasierte als auch klassenbasierte OOP:

// Klassen-basierte OOP (ES2015+)
class Vehicle {
    constructor(brand, model) {
        this.brand = brand;
        this.model = model;
        this._mileage = 0; // Private-ähnliche Eigenschaft
    }
    
    // Getter und Setter
    get mileage() {
        return this._mileage;
    }
    
    set mileage(value) {
        if (value >= 0) {
            this._mileage = value;
        }
    }
    
    // Methoden
    startEngine() {
        console.log(`${this.brand} ${this.model} startet.`);
    }
    
    // Statische Methoden
    static compareVehicles(v1, v2) {
        return v1.mileage - v2.mileage;
    }
}

// Vererbung
class Car extends Vehicle {
    constructor(brand, model, doors) {
        super(brand, model);
        this.doors = doors;
    }
    
    // Methoden-Überschreibung
    startEngine() {
        super.startEngine();
        console.log("Auto ist fahrbereit.");
    }
}

// Instanziierung und Verwendung
let myCar = new Car("BMW", "X5", 4);
myCar.mileage = 50000;
myCar.startEngine();

// Prototyp-basierte OOP (traditionell)
function Motorcycle(brand, model) {
    this.brand = brand;
    this.model = model;
}

Motorcycle.prototype.startEngine = function() {
    console.log(`${this.brand} ${this.model} röhrt auf.`);
};

Die Kapselung in JavaScript wird durch verschiedene Mechanismen erreicht, einschließlich Konventionen (Underscore-Präfix), Closures und den neueren Private Fields (#property). Polymorphismus ermöglicht es, verschiedene Objekte über eine einheitliche Schnittstelle zu verwenden.

Dieses Dokument teilen

Objektorientierung und Abstraktionsmechanismen

Oder Link kopieren

INHALT

Abonnieren

×
Cancel