Klasa Book z kompozycją
Część sekcji Programowanie obiektowe ścieżki JavaScript w Coddy. Lekcja 51 z 56.
Wyzwanie
Utwórz klasę Book z kompozycją
Twoje zadanie:
- W pliku o nazwie
Book.jszaimportuj klasęAuthorna początku - Utwórz i wyeksportuj klasę
Bookzawierającą:- Prywatne pola:
#title,#author,#isCheckedOut - Konstruktor przyjmujący
titleiauthor - Dwa gettery:
titleiauthorInfo, który zwraca imię i nazwisko autora
- Prywatne pola:
- W pliku
main.jsdodaj import klasyBook
Jak zastosowano tu kompozycję:
Kompozycja oznacza relację „ma”. W naszej klasie Book:
- Book MA Author (a nie „jest” Author)
- Klasa Book zawiera instancję klasy Author jako jeden ze swoich składników
- Klasa Author istnieje niezależnie i może być używana przez wiele obiektów Book
- Na tym polega kompozycja: tworzenie złożonych obiektów (Book) z prostszych (Author)
Spróbuj swoich sił
import { Author } from './Author.js';
// TODO: Zaimportuj klasę Book
// Testy
const author = new Author('J.K. Rowling');
const book = new Book('Harry Potter', author);
console.log('Book title:', book.title); // Powinno wyświetlić: "Book title: Harry Potter"
console.log('Author:', book.authorInfo); // Powinno wyświetlić: "Author: J.K. Rowling"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