Propriedades e Métodos
Parte da seção Programação Orientada a Objetos do Journey de JavaScript da Coddy — lição 13 de 56.
Classes em JavaScript nos permitem definir propriedades e métodos que serão compartilhados por todas as instâncias da classe.
Crie uma classe com propriedades:
class Car {
constructor(make, model) {
this.make = make;
this.model = model;
}
}Ao criar uma instância, o construtor define estas propriedades:
const myCar = new Car('Toyota', 'Corolla');
console.log(myCar.make); // Saída: 'Toyota'
console.log(myCar.model); // Saída: 'Corolla'Adicione um método à classe:
class Car {
constructor(make, model) {
this.make = make;
this.model = model;
}
getDescription() {
return `This car is a ${this.make} ${this.model}.`;
}
}Agora podemos chamar este método em qualquer instância:
const myCar = new Car('Toyota', 'Corolla');
console.log(myCar.getDescription()); // Saída: 'This car is a Toyota Corolla.'Desafio
Crie uma classe chamada Book no arquivo book.js com o seguinte:
- Um construtor que aceita os parâmetros
title,authorepagese os define como propriedades. - Um método chamado
getInfoque retorna uma string no formato: “Title: [title], Author: [author], Pages: [pages]” - Exporte a classe adicionando `export` na frente da declaração `class`
Experimente você mesmo
import { Book } from './book.js';
// Teste (não modifique esta parte)
const book = new Book("JavaScript Basics", "John Doe", 200);
console.log(book.getInfo());
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
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 CircleSobrescrita e Método AreaContador de Formas Estático14Sistema de Gerenciamento de Biblioteca
Projetando a BibliotecaClasse Livro com ComposiçãoValidação do Autor do Livro