Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Sugestão de melhoria

Alguém poderia me dar uma sugestão de melhoria do meu código crie ele para treinar oque foi ensinado nas aulas

Temos a classe banco - "Classe mãe"

public class Banco {
    private String nome = "Indefido";
    private String cpf = "Indefinido";
    protected double saldo = 0.0;
    protected String TipoDeConta = "Indefinido";

    public String getNome(){
        return this.nome;
    }
    
    public String setNome(String nome){
        return this.nome = nome;
    }

    public String getCpf(){
        return this.cpf;
    }

    public String setCpf(String cpf){
        return this.cpf = cpf;
    }

    public double getsaldo(){
        return this.saldo;
    }


    public void exibirDados(){
        System.out.println();
        System.out.println();
        System.out.println("Nome: " + nome);
        System.out.println("Cpf: " + cpf);
        System.out.println("Saldo: " + saldo);
        System.out.println("Tipo da conta: " + TipoDeConta);
        System.out.println();
        System.out.println();
    }

}

temos a classe Conta - "classe filho"

public class Conta extends Banco{
    private double taxaDeSaque = 0.5;

    public void Depositar(double valorDeposito){
        if(valorDeposito > 1){
            System.out.println("Depositado com sucesso! Valor de: " + valorDeposito);
            this.saldo += valorDeposito;
        }
        else{
            System.out.println("Valor inválido");
        }
    }

    public void Sacar(double valorSacar){
        if(valorSacar > this.saldo){
            System.out.println("Saldo Insuficiente!");
        }

        else{
            System.out.println("Valor sacado de: " + valorSacar + "Com um taxa de :" + 0.5);
            this.saldo = (this.saldo - valorSacar) - taxaDeSaque;
        }
    }

}

temos a classe ContaSalario - "classe filha"

public class ContaSalario extends Banco{
    
    
    public void Depositar(double valorDeposito){
        if(valorDeposito > 1){
            System.out.println("Depositado com sucesso!");
            this.saldo += valorDeposito;
        }
        else{
            System.out.println("Valor inválido");
        }
    }

    public void Sacar(double valorSacar){
        if(valorSacar > this.saldo){
            System.out.println("Saldo Insuficiente!");
        }

        else{
            System.out.println("Valor sacado de: " + valorSacar + "Com um taxa de :" + 0.5);
            this.saldo -= valorSacar;
        }
    }

    public String alateraTipoConta(){
        return this.TipoDeConta = "conta salario";
    }

    public void exibirDados() {
        System.out.println();
        System.out.println();
        System.out.println("Nome: " + getNome());
        System.out.println("Cpf: " + getCpf());
        System.out.println("Saldo: " + getsaldo());
        System.out.println("Tipo da conta: " + alateraTipoConta());
        System.out.println();
        System.out.println();
    }
}

e por fim a main que exibi os resultados

public class Main{
    public static void main(String[] args) {
        ContaSalario jovemAprendiz = new ContaSalario();
        jovemAprendiz.setNome("Jovem");
        jovemAprendiz.setCpf("123.456.789.10");
        jovemAprendiz.Depositar(100);
        jovemAprendiz.Sacar(10);
        jovemAprendiz.exibirDados();

        ////////////////////////////////////////////////////////////

        Conta adulto = new Conta();
        adulto.setNome("Adulto");
        adulto.setCpf("987.654.321-01");
        adulto.Depositar(100);
        adulto.Sacar(10);
        adulto.exibirDados();

    }
}
2 respostas
solução!

public class Banco { private String nome; private String cpf; protected double saldo; protected String tipoDeConta;

public Banco() {
    this.nome = "Indefinido";
    this.cpf = "Indefinido";
    this.saldo = 0.0;
    this.tipoDeConta = "Indefinido";
}

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public String getCpf() {
    return cpf;
}

public void setCpf(String cpf) {
    this.cpf = cpf;
}

public double getSaldo() {
    return saldo;
}

public void exibirDados() {
    System.out.println();
    System.out.println("Nome: " + nome);
    System.out.println("CPF: " + cpf);
    System.out.println("Saldo: " + saldo);
    System.out.println("Tipo de conta: " + tipoDeConta);
    System.out.println();
    System.out.println();
}

}

Principais melhorias feitas:

Removi os valores padrão "Indefinido" e 0.0 das variáveis de instância. Em vez disso, defini esses valores no construtor da classe. Renomeei a variável TipoDeConta para tipoDeConta, seguindo as convenções de nomenclatura do Java, que sugerem o uso de letras minúsculas para nomes de variáveis. No método setNome, removi o tipo de retorno String, pois parece desnecessário retornar o nome que foi definido. No método setCpf, removi o tipo de retorno String, pois também não é necessário retornar o CPF que foi definido. No método getsaldo, alterei o nome do método para getSaldo para seguir as convenções de nomenclatura do Java. Removi linhas vazias extras na função exibirDados para tornar o código mais limpo. No construtor da classe, defini os valores iniciais das variáveis usando o construtor padrão. Adicionei um construtor padrão vazio para permitir a criação de objetos da classe Banco sem a necessidade de passar argumentos. Essas melhorias ajudam a tornar o código mais legível, seguindo as convenções de nomenclatura do Java e removendo partes desnecessárias.

um obrigado pela dica, parece meio avançado algumas partes para mim ainda pois sou novo na linguagem, mas pela bagagem do Poo do php deu pra ententender bem obrigado pelas dicas vou me esforçar mais para criar códigos melhores e limpos, obrigado pela ajuda