A Programação Orientada a Objetos (POO) é um paradigma de programação que se baseia no conceito de "objetos", que representam entidades do mundo real com características (atributos) e comportamentos (métodos). A POO enfatiza a organização do código em unidades autônomas e reutilizáveis, facilitando o desenvolvimento, manutenção e compreensão de sistemas complexos.
- Classe Conta
- Classe Conta corrente
- Classe Historico
- Classe Cliente
- Classe Pessoa fisica
- Classe Transação
A classe Conta
implementa as funções principais de uma conta bancária.
OBS: não deve ser instanciada diretamente.
const conta = new Conta(1, "client name", "batatinhasfritas123")
Saldo -- click para mais informações.
- type: Number
- state: PRIVADO
- description: saldo atual da conta
- default: 0
- optional: True
Agência -- click para mais informações.
- type: String
- state: PUBLIC
- description: número da agência.
- default: 0001
- optional: True
Historico -- click para mais informações.
- type: Array Histórico.
- state: PUBLIC
- description: O histórico de transações da conta.
- default: []
- optional: True
Senha -- click para mais informações.
- type: String
- state: PRIVATE
- description: A senha de acesso à conta.
- optional: False
Número -- click para mais informações.
- type: Number
- state: PUBLIC
- description: O número da conta.
- optional: False
Cliente -- click para mais informações.
- type: String
- state: PUBLIC
- description: O nome do cliente associado à conta.
- optional: False
conta_saldo [GETTER] -- click para mais informações.
- type: Number
- description: Retorna o valor de saldo.
const saldo = conta.Conta_saldo
conta_numero [GETTER] -- click para mais informações.
- type: Number
- description: Retorna o número da conta.
const numero = conta.Conta_numero
Conta_senha [GETTER] -- click para mais informações.
- type: String
- description: Retorna a senha da conta.
const senha = conta.Conta_senha
Conta_historico [GETTER] -- click para mais informações.
- type: Array Historico
- description: Retorna a lista de transações da conta.
const historico = conta.Conta_historico
retorno
Historico {
transacoes: [
{ tipo: 'DEPOSITO', valor: 400, data: '24/08/2024, 18:05:12' },
{ tipo: 'SAQUE', valor: 30, data: '24/08/2024, 18:05:12' }
]
}
Conta_sacar -- click para mais informações.
- return type: Void
- parametrô: valor -- number
- description: Decrementa o valor de saldo da conta.
conta.Conta_sacar(50)
Conta_depositar -- click para mais informações.
- return type: Void
- parametrô: valor -- number
- description: Incrementa o valor de saldo da conta.
conta.Conta_depositar(50)
===============================================================================================
A classe Conta corrente
é uma subclasse de conta
e adiciona funcionalidades específicas para uma conta corrente.
const conta_corrente = new Conta_corrente(1, "client name", "batatinhasfritas123")
limite_saques -- click para mais informações.
- type: Number
- state: PUBLIC
- description: Limite de saques que o usúario pode fazer por dia
- default: 3
- optional: True
limite_por_saque -- click para mais informações.
- type: Number
- state: PUBLIC
- description: Valor limite de saque.
- default: 500
- optional: True
verificarValor -- click para mais informações.
- return type: Boolean
- parametro: valor - Number
- state: PRIVADO
- description: Verificar se o valor passado é menor ou igual que o saldo disponivel.
// exemplo saldo = 50
conta.verficarValor(50) // true
conta.verficarValor(500) // false
verificarSaldo -- click para mais informações.
- return type: Boolean
- parametro: none
- state: PRIVADO
- description: Verificar se há algum saldo na conta.
/*
exemplo
saldo disponivel = 500
*/
conta.verificarSaldo() // true
verificarLimites -- click para mais informações.
- return type: Boolean
- parametro: valor - Number
- state: PRIVADO
- description: Verificar se os limites de saques e valor não foram excedidos.
/*
exemplo
saques efetuados = 2
limite = 500
*/
conta.verificarLimites(50) // true
conta.verificarLimites(700) // false
depositar -- click para mais informações.
- return type: Boolean
- parametro: valor - Number
- state: PUBLIC
- description: Executa uma verificaão antes de efetuar a transação.
//valor inserido não pode ser igual ou menor que -0
conta.depositar(50) // true
conta.depositar(0) // false
conta.depositar(-10) // false
sacar -- click para mais informações.
- return type: Boolean
- parametro: valor - Number
- state: PUBLIC
- description: Executa uma verificaão antes de efetuar a transação.
conta.sacar(50)
A classe Historico
gerencia e armazena uma lista de transações financeiras, permitindo adicionar novas transações e acessar o histórico existente.
const historico = new Historico();
transacoes -- click para mais informações.
- type: transacao[]
- state: Private
- description: Lista de transações feitas na conta.
- default: []
- optional: false
Transacoes [GETTER] -- click para mais informações.
- type: Transacao[]
- description: Retorna o historico.
const historico = new Historico()
const transacoes = historico.Transacoes
nova_transacao -- click para mais informações.
- return type: Void
- parametro: valor - Number, tipo - "Saque" || "Deposito", data - Date
- state: PUBLIC
- description: Adiciona uma nova transação ao historico.
const historico = new Historico()
const transacoes = historico.nova_transacao("Saque", 100, new Date(2024, 8, 24))
A classe Cliente
implementa a base de um registro de usuário e herda suas propriedade para a classe Pessoa_fisica
const cliente = new Cliente()
contas -- click para mais informações.
- type: Conta_corrente[]
- state: PUBLIC
- description: Lista de contas vinculadas a um usuário.
- default: []
- optional: false
adicionar_conta -- click para mais informações.
- return type: void
- parametro: conta - conta_corrente
- state: PUBLIC
- description: vincula uma nova conta ao usuário.
cliente.adcionar_conta(conta)
realizar_transacao -- click para mais informações.
- return type: void
- parametro: transacao - transacao
- state: PUBLIC
- description: Registra uma nova transação a conta.
cliente.realizar_transacao(transacao)
A classe Pessoa_fisica
extende as propriedades da classe cliente
const pessoa = new Pessoa_fisica("nome", "cpf")
nome -- click para mais informações.
- type: String
- state: PUBLIC
- description: nome do cliente.
- default: none
- optional:false
cpf -- click para mais informações.
- type: String
- state: PUBLIC
- description: cpf do cliente.
- default: none
- optional:false
Classe transacao
é uma classe abstrata. classes abstratas são classes que não podem ser instanciadas diretamento, ou seja voê não pode instanciar um objetos a partir dela. classes abstratas servem como base para outras classes definindo metodos que devem ser implementados por suas aubclasses
Valor -- click para mais informações.
- type: Number
- state: PUBLIC
- description: O valor da transação.
- default: none
- optional: false
registrar -- click para mais informações.
- return type: Void
- parametro: conta - Conta_corrente
- state: ABSTRACT
- description: metodo a ser implementado.
Ambas as classes implementam os atributos de Transação e servem como modelos e para gerar novas transações.
const saque = new Saque(500)
const deposito = new Deposito(500)
Valor -- click para mais informações.
- type: Number
- state: PUBLIC
- description: O valor da transação.
- default: none
- optional: false
registrar -- click para mais informações.
- return type: Void
- parametro: conta - Conta_corrente
- state: ABSTRACT
- description: executa uma nova transação e registra no historico da conta caso sucesso..