Classe Book con composizione
Fa parte della sezione Programmazione orientata agli oggetti del percorso JavaScript di Coddy. Lezione 51 di 56.
Sfida
Crea la classe Book con la composizione
Il tuo compito:
- Nel file chiamato
Book.js, importa la classeAuthorall'inizio - Crea ed esporta una classe
Bookcon:- Campi privati:
#title,#author,#isCheckedOut - Un costruttore che accetta
titleeauthor - Due getter:
titleeauthorInfo, che restituisce il nome dell'autore
- Campi privati:
- In
main.js, aggiungi l'importazione della classeBook
Come si applica la composizione in questo caso:
La composizione indica una relazione «ha un». Nella nostra classe Book:
- Book HAS-AN Author (non «è un» Author)
- La classe Book contiene un'istanza di Author come uno dei suoi componenti
- Author esiste separatamente e può essere utilizzata da più classi Book
- Questa è la composizione: costruire oggetti complessi (Book) a partire da oggetti più semplici (Author)
Provalo tu
import { Author } from './Author.js';
// TODO: Importa la classe Book
// Test
const author = new Author('J.K. Rowling');
const book = new Book('Harry Potter', author);
console.log('Book title:', book.title); // Dovrebbe mostrare: "Book title: Harry Potter"
console.log('Author:', book.authorInfo); // Dovrebbe mostrare: "Author: J.K. Rowling"Tutte le lezioni di Programmazione orientata agli oggetti
1Oggetti e la keyword this
Ripasso rapido: oggettiAggiungere metodi agli oggettiCapire la keyword thisFunzioni costruttriciLa keyword newSfida di ripasso7Ereditarietà e parola chiave extends
EreditarietàLa relazione «è un»La parola chiave extendsIl metodo super()Ereditare proprietà e metodiSfida di ripasso13Composizione vs. ereditarietà
«Ha-un» vs. «è-un»I limiti dell’ereditarietà profondaCostruire oggetti2Organizzare il codice
Cosa sono i moduli?Esportare con exportImportare con importExport predefiniti vs. export nominati5Incapsulamento e accesso
IncapsulamentoCampi di classe pubblici e privatiMetodi privatiSfida di riepilogo8Organizzare il codice OOP
Organizzare le classi in moduli11Progetto: Un renderizzatore di forme
Configurazione: classe Shape ed esportazioneEreditarietà della classe CircleOverride e metodo areaContatore statico di Shape14Sistema di gestione della biblioteca
Progettare la bibliotecaClasse Book con composizioneValidazione dell'autore del libroEsercitati da solo: Compilatore JavaScript online