Menu
Coddy logo textTech

Öffentliche & private Klassenfelder

Teil des Abschnitts Objektorientierte Programmierung der JavaScript-Journey von Coddy. Lektion 18 von 56.

In JavaScript-Klassen können wir zwei Arten von Klassenfeldern definieren: public und private.

Öffentliche Felder sind von außerhalb der Klasse zugänglich und können von jedem verwendet werden.

Erstellen Sie eine Klasse mit öffentlichen Feldern:

class Student {
  name = '';
  grade = 0;
  
  constructor(name, grade) {
    this.name = name;
    this.grade = grade;
  }
}

Erstellen Sie eine Student-Instanz:

const student = new Student('Alice', 95);

Greifen Sie von außerhalb der Klasse auf öffentliche Felder zu:

console.log(student.name); // Ausgabe: "Alice"
student.grade = 98;
console.log(student.grade); // Ausgabe: 98

Private Felder werden mit dem Symbol # gekennzeichnet und können nur von innerhalb der Klasse aufgerufen werden:

class Student {
  name = '';
  #grade = 0;
  
  constructor(name, grade) {
    this.name = name;
    this.#grade = grade;
  }
  
  getGrade() {
    return this.#grade;
  }
  
  updateGrade(newGrade) {
    this.#grade = newGrade;
  }
}

Verwendung privater Felder:

const student = new Student('Bob', 87);
console.log(student.name); // Ausgabe: "Bob"

// Zugriff auf ein privates Feld über eine Methode
console.log(student.getGrade()); // Ausgabe: 87

// Aktualisieren eines privaten Feldes über eine Methode
student.updateGrade(92);
console.log(student.getGrade()); // Ausgabe: 92

// Dies würde einen Fehler verursachen:
// console.log(student.#grade); // SyntaxError
challenge icon

Aufgabe

  1. Füge zwei Felder in die Klasse namens UserAccount ein:
    1. Ein öffentliches Feld username
    2. Ein privates Feld #password
  2. Füge einen Konstruktor hinzu, der die Parameter username und password entgegennimmt

Probier es selbst

import { UserAccount } from './userAccount.js';

// Testcode - nicht ändern
const user = new UserAccount("alice", "secret123");
console.log(user.username);          // Sollte "alice" ausgeben

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Objektorientierte Programmierung

Übe selbstständig: Online-JavaScript-Compiler