Wie greift man in TypeScript auf ein privates Klassenmitglied zu?

Zugriff auf private Klassenmitglieder in TypeScript

Wenn wir über das Konzept der Zugänglichkeitsmodifikatoren in TypeScript sprechen, insbesondere über private, müssen wir klarstellen, wie wir auf diese sogenannten privaten Klassenmitglieder zugreifen können.

In TypeScript, genau wie in vielen anderen objektorientierten Programmiersprachen, sind private Member einer Klasse nicht direkt von außerhalb dieser Klasse aus zugänglich. Sie können also nicht direkt auf sie zugreifen oder sie manipulieren, indem Sie das Schlüsselwort private verwenden. Versuchen Sie, auf ein privates Mitglied zuzugreifen, erhalten Sie einen Kompilierungsfehler.

Die korrekte Methode, um auf private Mitglieder in TypeScript zuzugreifen, ist über öffentliche Methoden der Klasse.

Beispiel:

Angenommen, wir haben eine Klasse Auto mit einer privaten Eigenschaft geschwindigkeit und wir möchten eine Methode erstellen, die es uns ermöglicht, diese Geschwindigkeit zu erhalten und zu ändern:

class Auto {
    private geschwindigkeit: number;

    constructor(geschwindigkeit: number) {
        this.geschwindigkeit = geschwindigkeit;
    }

    // Öffentliche Methode, um die Geschwindigkeit zu erhalten
    public getGeschwindigkeit(): number {
        return this.geschwindigkeit;
    }

    // Öffentliche Methode, um die Geschwindigkeit zu ändern
    public setGeschwindigkeit(value: number): void {
        this.geschwindigkeit = value;
    }
}

In diesem Beispiel sind getGeschwindigkeit und setGeschwindigkeit die öffentlichen Methoden, die uns den Zugriff auf das private Mitglied geschwindigkeit ermöglichen.

Dieses Konzept wird oft als Kapselung bezeichnet und ist ein grundlegendes Prinzip der objektorientierten Programmierung. Es bietet eine Möglichkeit, eine einheitliche Schnittstelle oder API für eine Klasse bereitzustellen, während die internen Details der Klasse verborgen bleiben, was die Isolierung von Code und die Wiederverwendbarkeit verbessert.

Related Questions

Finden Sie das nützlich?