Menu
Coddy logo textTech

Publiczne i prywatne pola klasy

Część sekcji Programowanie obiektowe ścieżki JavaScript w Coddy. Lekcja 18 z 56.

W klasach JavaScript możemy definiować dwa rodzaje pól klasy: publiczne i prywatne.

Pola publiczne są dostępne spoza klasy i mogą być używane przez każdego.

Utwórz klasę z publicznymi polami:

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

Utwórz instancję ucznia:

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

Uzyskuj dostęp do pól publicznych spoza klasy:

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

Pola prywatne są oznaczane symbolem # i można uzyskać do nich dostęp tylko z wnętrza klasy:

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

Korzystanie z pól prywatnych:

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

// Uzyskaj dostęp do pola prywatnego za pomocą metody
console.log(student.getGrade()); // Wynik: 87

// Zaktualizuj pole prywatne za pomocą metody
student.updateGrade(92);
console.log(student.getGrade()); // Wynik: 92

// To spowodowałoby błąd:
// console.log(student.#grade); // SyntaxError
challenge icon

Wyzwanie

  1. Dodaj dwa pola do klasy o nazwie UserAccount:
    1. Publiczne pole username
    2. Prywatne pole #password
  2. Dodaj konstruktor, który przyjmuje parametry username i password

Spróbuj swoich sił

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

// Kod testowy - nie modyfikuj
const user = new UserAccount("alice", "secret123");
console.log(user.username);          // Powinno wypisać "alice"

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator JavaScript online