Nesta aula, entraremos em um dos conceitos mais fundamentais e poderosos da linguagem TypeScript: classes.
Em TypeScript, as classes são estruturas fundamentais para a programação orientada a objetos (POO). Elas permitem criar modelos ou protótipos para objetos, definindo atributos (propriedades) e comportamentos (métodos) que os objetos criados a partir delas herdarão. As classes são uma parte essencial do desenvolvimento em TypeScript, pois fornecem um meio de organizar e estruturar o código de forma orientada a objetos.
Elas facilitam a encapsulação de dados e lógica relacionada em unidades coesas, tornando o código mais organizado e fácil de manter. Além disso, as classes em TypeScript permitem a implementação de conceitos-chave da programação orientada a objetos, como herança, polimorfismo e encapsulamento.
Em TypeScript, uma classe é declarada usando a palavra-chave class, seguida pelo nome da classe. Aqui está um exemplo simples de declaração de classe:
class Animal {
// Propriedades da classe
name: string;
age: number;
// Construtor da classe
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
// Método da classe
speak() {
console.log(`Olá, eu sou ${this.name} e tenho ${this.age} anos.`);
}
}
Neste exemplo, temos uma classe chamada Animal com duas propriedades (name e age), um construtor que recebe valores iniciais para essas propriedades e um método chamado speak que imprime uma mensagem no console.
Propriedades e Métodos
As propriedades de uma classe são variáveis que armazenam informações sobre os objetos criados a partir da classe. Os métodos são funções que descrevem o comportamento dos objetos da classe. Ambos são definidos dentro do corpo da classe.
Se você já trabalhou com classes em JavaScript (ECMAScript 6 ou posterior), notará que a sintaxe em TypeScript é semelhante, pois o TypeScript é um superset de JavaScript. No entanto, o TypeScript adiciona recursos de tipagem estática que fornecem maior segurança e ajuda no desenvolvimento.
Exemplos de Código de Classes
Vamos dar uma olhada em alguns exemplos de código que ilustram como criar e usar classes em TypeScript. Esses exemplos ajudarão a solidificar os conceitos que discutimos até agora.
Exemplo 1: Criando uma Classe Pessoa
class Pessoa {
nome: string;
idade: number;
constructor(nome: string, idade: number) {
this.nome = nome;
this.idade = idade;
}
saudacao() {
console.log(`Olá, meu nome é ${this.nome} e eu tenho ${this.idade} anos.`);
}
}
// Criando uma instância da classe Pessoa
const pessoa1 = new Pessoa("Alice", 30);
// Chamando o método saudacao
pessoa1.saudacao(); // Saída: Olá, meu nome é Alice e eu tenho 30 anos.
Neste exemplo, definimos uma classe Pessoa com propriedades nome e idade, um construtor para inicializar essas propriedades e um método saudacao que imprime uma mensagem de saudação.
Vantagens das Classes em TypeScript
- Tipagem Estática: TypeScript oferece a vantagem de tipagem estática, o que significa que podemos especificar os tipos de propriedades e métodos de uma classe. Isso ajuda a evitar erros de tipo em tempo de execução.
- Herança e Polimorfismo: Classes em TypeScript suportam herança e polimorfismo, permitindo criar hierarquias de classes e reutilizar código de forma eficaz.(Vamos ver isso nas proximas aulas desse modulo sobre classes)
- Encapsulamento: O uso de modificadores de acesso como
public,privateeprotectedpermite controlar o acesso às propriedades e métodos de uma classe, melhorando a encapsulação.(Vamos ver isso nas proximas aulas desse modulo sobre classes) - Métodos Estáticos: A capacidade de definir métodos estáticos em classes facilita a criação de utilitários e funções que podem ser usados sem a necessidade de criar instâncias da classe.(Vamos ver isso nas proximas aulas desse modulo sobre classes)
Em JavaScript, a orientação a objetos é baseada em protótipos, enquanto TypeScript introduz uma sintaxe mais familiar de classes, mais próxima da programação orientada a objetos em outras linguagens.
Além disso, em JavaScript, não há suporte nativo para tipos, tornando mais difícil a detecção de erros de tipo em tempo de compilação.
As classes em TypeScript, portanto, oferecem uma maneira mais estruturada e segura de trabalhar com objetos e herança, o que pode ser particularmente valioso em projetos de grande escala.
Agora, é hora de praticar e aplicar o que você aprendeu. Os exercícios práticos abaixo são projetados para ajudá-lo a consolidar seu conhecimento e ganhar experiência na criação e uso de classes em TypeScript.
Exercícios Práticos
Agora, vamos praticar a criação e uso de classes em TypeScript. Abaixo estão três exercícios para você aprimorar suas habilidades. Certifique-se de seguir as instruções detalhadas e use as informações fornecidas para concluir cada exercício.
Exercício 1: Criando uma Classe de Veículo Crie uma classe chamada Veiculo com as seguintes propriedades:
marca(string)modelo(string)ano(number)
Adicione um método descrever() que retorne uma string descrevendo o veículo com suas propriedades. Crie um objeto do tipo Veiculo e chame o método descrever() para exibir as informações no console.
Exercício 2: Gerenciando uma Lista de Tarefas Crie uma classe chamada ListaDeTarefas que represente uma lista de tarefas. Ela deve conter as seguintes funcionalidades:
- Um array de strings para armazenar as tarefas.
- Um método
adicionarTarefa(tarefa: string)que adiciona uma tarefa à lista. - Um método
listarTarefas()que exibe todas as tarefas no console.
Crie um objeto do tipo ListaDeTarefas e utilize os métodos para adicionar e listar tarefas.
Exercício 3: Modelando uma Loja Online Crie uma classe chamada Produto que represente um produto em uma loja online. O produto deve ter as seguintes propriedades:
nome(string)preco(number)quantidade(number)
Adicione um método calcularTotal(quantidade: number) que retorna o custo total com base na quantidade fornecida. Crie um objeto do tipo Produto e use o método calcularTotal() para calcular o custo total de um pedido de produtos.
Lembre-se de criar instâncias das classes e testar seus métodos para garantir que funcionem conforme o esperado.
