Mini-Projeto: Aula 05 – Sistema Bancário (Classes e POO) 🏦
Objetivo
Aplicar os conceitos de Programação Orientada a Objetos (Classes, Modificadores de Acesso, Herança) para criar um sistema de gerenciamento de contas bancárias.
🏗️ Requisitos do Projeto
- Classe base
Contacom atributos privados. - Uso de
protectedpara permitir herança. - Subclasses
ContaCorrenteeContaPoupancacom regras específicas. - Implementação de getters e setters para validação de saldo.
🛠️ Passo a Passo
1. Classe Base
abstract class Conta {
constructor(
private _titular: string,
protected _saldo: number = 0
) {}
get saldo() { return this._saldo; }
depositar(valor: number): void {
if (valor > 0) this._saldo += valor;
}
abstract sacar(valor: number): boolean;
}
2. Extensões
class ContaCorrente extends Conta {
sacar(valor: number): boolean {
if (valor <= this._saldo + 100) { // Limite extra
this._saldo -= valor;
return true;
}
return false;
}
}
class ContaPoupanca extends Conta {
sacar(valor: number): boolean {
if (valor <= this._saldo) {
this._saldo -= valor;
return true;
}
return false;
}
}
✅ Desafio Extra
- Crie uma classe
Bancoque armazena um array deContae possui um método para listar todos os titulares e seus saldos (Polimorfismo). - Adicione uma propriedade
readonlychamadanumeroContagerada automaticamente no construtor.