Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida no Ex. 1 da Aula 3 - Começando com Orientação a objetos

ola galera Estou enfrenando uma dificuldade com o void transfere, não consigo enxergar o erro. Poderiam dar uma olhada por favor?

vlwwww...

class funcionario{
      conta cadastro;

    String nome;
    String sobrenome;
    String nasc;
    String rg;
    String cpf;

}

class conta{

    double saldo;
    int agencia;
    int numConta;

    void aumento(double aumentoSalario){
        this.saldo += aumentoSalario;
    }

    void desconto(double descontoFolha){
        this.saldo -= descontoFolha;
    }
    void calculaGanhoAnual(){
        this.saldo /= 12;
    }

    void transfere(double TransfereValor, funcionario destino ){
        if(this.saldo >= TransfereValor){
            this.saldo -= TransfereValor;
            destino.cadastro.saldo +=TransfereValor -0.5;
        }

}

}
class Programa1{
    public static void main(String[] args){

        funcionario israel = new funcionario();
        israel.cadastro = new conta();

        israel.nome = "israel de castro e silva sauro";
        israel.cadastro.saldo = 800.0;
        israel.cadastro.aumento(50.0);
        //israel.cadastro.aumento = 50.0;
        israel.cadastro.transfere(500.0, rick);


        System.out.println(israel.nome);
        System.out.println(israel.cadastro.saldo);



        funcionario rick = new funcionario();
        rick.cadastro = new conta(); 

        rick.nome="Rick";
        rick.sobrenome=" mad";
        rick.nasc="00/00/00";
        rick.rg="888";
        rick.cpf="999";
        rick.cadastro.agencia = 4153;
        rick.cadastro.saldo = 0.0;
        rick.cadastro.transfere(500.0, israel);


        System.out.println(rick.nome + rick.sobrenome + rick.nasc+rick.rg+rick.cpf);
        System.out.println(rick.cadastro.agencia);
        System.out.println(rick.cadastro.saldo);
    }


}
1 resposta
solução!

Marlon, percebe que na função main você usa o objeto rick antes de instanciá-lo? Tente colocar as linhas

funcionario rick= new funcionario();
rick.cadastro = new conta();

antes da linha

israel.cadastro.transfere(500.0, rick);

e tudo deve funcionar. Recomendo que pesquise sobre padrões de codificação Java para tentar "automatizar" uma organização do código em sua cabeça! Abraços e bons estudos!