CodeGym /Java Kurs /Frontend SELF DE /Konstruktoren und Methoden

Konstruktoren und Methoden

Frontend SELF DE
Level 39 , Lektion 5
Verfügbar

6.1 Klassen-Konstruktoren

Konstruktoren und Methoden von Klassen sind die grundlegenden Elemente der objektorientierten Programmierung in JavaScript. Sie ermöglichen es Objekte zu erstellen und zu initialisieren sowie deren Verhalten zu definieren. Unten sehen wir, wie Konstruktoren und Methoden von Klassen funktionieren und wie man sie anwendet.

Was ist ein Konstruktor?

Ein Konstruktor ist eine spezielle Methode einer Klasse, die beim Erstellen einer neuen Instanz der Klasse aufgerufen wird. Er wird verwendet, um ein Objekt zu initialisieren, Werte seiner Eigenschaften festzulegen und andere Anfangsaufgaben auszuführen.

Konstruktor-Definition

Ein Konstruktor wird mit dem Schlüsselwort constructor definiert. Innerhalb des Konstruktors kann man mit Hilfe des Schlüsselworts this auf die Eigenschaften und Methoden des Objekts zugreifen.

Syntax:

    
      class ClassName {
        constructor(parameter) {
          // Objektinitialisierung
        }
      }
    
  

Beispiel:

In der Klasse Person nimmt die Methode constructor zwei Parameter: name und age.

Diese Parameter werden benutzt, um die Eigenschaften name und age des erstellten Objekts zu initialisieren.

JavaScript
    
      class Person {
        constructor(name, age) {
          this.name = name;
          this.age = age;
        }
      }

      const person1 = new Person('Alice', 30);
      const person2 = new Person('Bob', 25);

      console.log(person1.name); // Gibt aus: Alice
      console.log(person2.age);  // Gibt aus: 25
    
  

Standardkonstruktor

Falls der Konstruktor nicht explizit definiert ist, erstellt JavaScript automatisch einen leeren Standardkonstruktor.

Beispiel:

JavaScript
    
      class Animal {}

      const animal = new Animal();
      console.log(animal); // Gibt den Inhalt der Klasse Animal {}
    
  

4.2 Klassen-Methoden

Methoden von Klassen werden innerhalb des Klassenrumpfes definiert und stellen die Funktionalität für die mit dieser Klasse erstellten Objekte bereit. Methoden werden automatisch dem Prototyp der Klasse hinzugefügt, was es allen Instanzen der Klasse ermöglicht, sie zu erben und zu verwenden.

Syntax:

    
      class ClassName {
        constructor(parameter) {
          // Objektinitialisierung
        }
        
        methode1() {
          // Methodenrumpf
        }
        
        methode2() {
          // Methodenrumpf
        }
      }
    
  

Beispiel:

JavaScript
    
      class Car {
        constructor(brand, model) {
          this.brand = brand;
          this.model = model;
          this.mileage = 0;
        }

        drive(distance) {
          this.mileage += distance;
          console.log(`${this.brand} ${this.model} fuhr ${distance} Meilen. Gesamtfahrleistung: ${this.mileage}`);
        }

        getDetails() {
          return `${this.brand} ${this.model}, Fahrleistung: ${this.mileage}`;
        }
      }

      const myCar = new Car('Toyota', 'Camry');
      myCar.drive(50); // "Toyota Camry fuhr 50 Meilen. Gesamtfahrleistung: 50"

      console.log(myCar.getDetails()); // "Toyota Camry, Fahrleistung: 50"
    
  

Erklärung:

  • In der Klasse Car sind zwei Methoden definiert: drive() und getDetails()
  • Die Methode drive() erhöht die Fahrleistung des Autos und gibt Informationen über die zurückgelegte Strecke aus
  • Die Methode getDetails() gibt einen String mit Informationen über das Auto zurück

6.3 Private Methoden

Mit der Einführung neuer ECMAScript-Spezifikationen kam die Möglichkeit, private Methoden und Eigenschaften zu erstellen, die außerhalb der Klasse nicht zugänglich sind. Hierfür wird das Symbol # als Teil des Namens verwendet.

Beispiel für private Methoden und Eigenschaften:

JavaScript
    
      class BankAccount {
        #balance = 0;

        constructor(initialBalance) {
          this.#balance = initialBalance;
        }

        #validateAmount(amount) {
          if (amount <= 0) {
            throw new Error('Der Betrag muss positiv sein.');
          }
        }

        deposit(amount) {
          this.#validateAmount(amount);
          this.#balance += amount;
          console.log(`Eingezahlt: ${amount}. Neuer Kontostand: ${this.#balance}`);
        }

        withdraw(amount) {
          this.#validateAmount(amount);
          if (amount > this.#balance) {
            throw new Error('Unzureichende Mittel.');
          }
          this.#balance -= amount;
          console.log(`Abgehoben: ${amount}. Neuer Kontostand: ${this.#balance}`);
        }

        getBalance() {
          return this.#balance;
        }
      }

      const account = new BankAccount(100);
      account.deposit(50); // Gibt aus: Eingezahlt: 50. Neuer Kontostand: 150
      account.withdraw(30); // Gibt aus: Abgehoben: 30. Neuer Kontostand: 120
      console.log(account.getBalance()); // Gibt aus: 120

      // Der Versuch auf eine private Methode oder Eigenschaft zuzugreifen, führt zu einem Fehler
      account.#balance; // SyntaxError
      account.#validateAmount(50); // SyntaxError
    
  
1
Опрос
Einführung in Klassen,  39 уровень,  5 лекция
недоступен
Einführung in Klassen
Einführung in Klassen
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION