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: 98Pola 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); // SyntaxErrorWyzwanie
- Dodaj dwa pola do klasy o nazwie UserAccount:
- Publiczne pole
username - Prywatne pole
#password
- Publiczne pole
- Dodaj konstruktor, który przyjmuje parametry
usernameipassword
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"
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Programowanie obiektowe
1Obiekty i słowo kluczowe this
Szybka powtórka: obiektyDodawanie metod do obiektówZrozumienie słowa kluczowego thisFunkcje konstruktoraSłowo kluczowe newWyzwanie podsumowujące7Dziedziczenie i słowo kluczowe extends
DziedziczenieRelacja „jest rodzajem”Słowo kluczowe extendsMetoda super()Dziedziczenie właściwości i metodWyzwanie podsumowujące10Polimorfizm
Czym jest polimorfizm?Nadpisywanie odziedziczonych metodUżywanie superWyzwanie podsumowujące13Kompozycja a dziedziczenie
Relacja „ma” a relacja „jest”Ograniczenia głębokiego dziedziczeniaTworzenie obiektów2Organizowanie kodu
Czym są moduły?Eksportowanie za pomocą exportImportowanie za pomocą importEksporty domyślne a nazwane5Enkapsulacja i dostęp
EnkapsulacjaPubliczne i prywatne pola klasyMetody prywatneWyzwanie podsumowujące8Organizowanie kodu OOP
Organizowanie klas w moduły11Projekt: Renderer kształtów
Konfiguracja: klasa Shape i eksportDziedziczenie klasy CircleNadpisywanie i metoda obliczania polaStatyczny licznik kształtów14System zarządzania biblioteką
Projektowanie bibliotekiKlasa Book z kompozycjąWalidacja autora książki9Metody i właściwości statyczne
Poziom klasy a poziom instancjiWłaściwości statyczneStatyczne metody pomocniczeWyzwanie podsumowującePoćwicz samodzielnie: Kompilator JavaScript online