1
resposta

[Projeto] Sistema bancario

package Banco;

public class Main {
    static void main(String[] args) {
        OperacaoBancaria deposito = new Deposito(50.67);
        OperacaoBancaria saque = new Saque(199.99);

        deposito.executar();
        saque.executar();
    }
}
package Banco;

abstract class OperacaoBancaria implements AcaoBancaria{
    private double vallor;

    public double getVallor() {
        return vallor;
    }

    public OperacaoBancaria(double vallor) {
        this.vallor = vallor;
    }

    @Override
    public void executar() {

    }
}
package Banco;

public class Deposito extends OperacaoBancaria{

    public Deposito(double vallor) {
        super(vallor);
    }

    @Override
    public void executar() {
        System.out.printf("Deposito de R$%.2f realizado\n", getVallor());
    }
}
package Banco;

public class Saque extends OperacaoBancaria{
    public Saque(double vallor) {
        super(vallor);
    }

    @Override
    public void executar() {
        System.out.printf("Saque de R$%.2f realizado\n", getVallor());
    }
}
package Banco;

public interface AcaoBancaria {
    void executar();
}
1 resposta

Oi, Gabriel! Como vai?

Gostei da forma como você separou as responsabilidades entre OperacaoBancaria, Deposito, Saque e AcaoBancaria, porque isso mostra um bom uso de herança, polimorfismo e interfaces no sistema bancário.

Um ponto importante para ajustar é o método principal, que em Java precisa ser public static void main(String[] args). Uma dica interessante para o futuro é validar o valor da operação no construtor para evitar números negativos. Veja este exemplo:


public OperacaoBancaria(double valor) {
    this.valor = Math.abs(valor);
}

Nesse código, Math.abs(valor) garante que o número fique positivo antes de salvar na variável, ajudando a evitar comportamentos inesperados no sistema.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!