Olá, Thiago. Como vai?
Parabéns por concluir e compartilhar o seu projeto final do desafio! Analisei o seu código e achei excelente a forma como você estruturou a sua aplicação.
Gostaria de destacar alguns pontos muito positivos na sua solução:
- Separação de Responsabilidades: Criar classes distintas como
Conta, OperacoesConta e Constantes mostra que você já está aplicando conceitos avançados de organização de projeto e código limpo. Isso facilita muito a leitura, os testes e a futura manutenção do sistema. - Uso de Constantes: Isolar os textos e as opções numéricas na classe
Constantes é uma excelente prática profissional. Isso evita os famosos "números mágicos" e impede que regras fiquem perdidas no meio da lógica principal. - Encapsulamento: Manter o atributo
saldo como private na classe Conta e permitir sua alteração apenas através de métodos específicos (receber e transferir) é exatamente o propósito da Orientação a Objetos.
Para agregar valor ao seu aprendizado, deixo duas sugestões práticas para você pensar nos seus próximos projetos:
1. Valores flexíveis pelo Construtor:
Atualmente, a sua classe Conta inicia sempre com o saldo fixo de 2500.00. Para tornar essa classe ainda mais genérica e reutilizável (por exemplo, criar contas para outros clientes com saldos diferentes), você pode exigir esses dados no momento da criação da conta através do construtor:
public class Conta {
private double saldo;
// Construtor recebendo o valor inicial
public Conta(double saldoInicial) {
this.saldo = saldoInicial;
}
// ... restante dos métodos
}
Na sua Main, a chamada ficaria: Conta minhaConta = new Conta(2500.00);
2. Tipos de dados para cálculos financeiros:
Para este curso inicial, utilizar o tipo double é a abordagem correta e esperada. No entanto, como curiosidade para o seu futuro profissional: no mercado de trabalho evitamos usar double para lidar com dinheiro. Isso acontece porque números de ponto flutuante podem sofrer perdas de precisão em operações matemáticas (por exemplo, um cálculo simples gerando um resultado como 0.30000000000000004). Em sistemas bancários reais em Java, a classe mais recomendada para evitar esses erros de arredondamento é a BigDecimal. Vale a pena pesquisar sobre ela mais para a frente!
Seu raciocínio lógico está ótimo. Continue praticando com essa mesma dedicação.
Espero que possa ter lhe ajudado!