Classe Livro com Composição
Parte da seção Programação Orientada a Objetos do Journey de JavaScript da Coddy — lição 51 de 56.
Desafio
Criar a Classe Book com Composição
Sua tarefa:
- No arquivo chamado
Book.js, importe a classeAuthorno topo - Crie e exporte uma classe
Bookcom:- Campos privados:
#title,#author,#isCheckedOut - Construtor que recebe
titleeauthor - Dois getters:
titleeauthorInfoque retorna o nome do autor
- Campos privados:
- Em
main.js, adicione a importação para a classeBook
Como a Composição é Aplicada Aqui:
Composição significa uma relação de "tem-um" (has-a). Em nossa classe Book:
- Book TEM-UM Author (não "é-um" Author)
- O Book contém uma instância de Author como um de seus componentes
- O Author existe separadamente e pode ser usado por múltiplos Books
- Isso é composição: construir objetos complexos (Book) a partir de objetos mais simples (Author)
Experimente você mesmo
import { Author } from './Author.js';
// TODO: Importar a classe Book
// Testes
const author = new Author('J.K. Rowling');
const book = new Book('Harry Potter', author);
console.log('Book title:', book.title); // Deve exibir: "Book title: Harry Potter"
console.log('Author:', book.authorInfo); // Deve exibir: "Author: J.K. Rowling"Todas as lições de Programação Orientada a Objetos
1Objetos e a Palavra-chave this
Revisão Rápida: ObjetosAdicionando Métodos a ObjetosEntendendo a Palavra-chave thisFunções ConstrutorasA Palavra-chave newDesafio de Recapitulação7Herança e a palavra-chave extends
HerançaA relação "é um"A palavra-chave extendsO método super()Herdando propriedades e métodosDesafio de recapitulação10Polimorfismo
O que é Polimorfismo?Sobrescrevendo Métodos HerdadosUsando superDesafio de Recapitulação13Composição vs. Herança
A relação "tem um" vs. "é um"Os limites da herança profundaConstruindo objetos2Organizando o Código
O que são Módulos?Exportando com exportImportando com importExportações Default vs. Nomeadas5Encapsulamento e Acesso
EncapsulamentoCampos de Classe Públicos e PrivadosMétodos PrivadosDesafio de Recapitulação8Organizando Código POO
Organizar Classes em Módulos11Projeto: Um Renderizador de Formas
Configuração: Classe Shape e ExportaçãoHerança da Classe Circle14Sistema de Gerenciamento de Biblioteca
Projetando a BibliotecaClasse Livro com Composição