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

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);
    }


}
4 respostas

Olá Marlon,

você está transferindo para a conta rick antes mesmo de cria-la.

Obs: ponha o nome de classe com letra maiúscula

Att,

Ola Ramon, A conta esta criada

funcionario rick = new funcionario();
        rick.cadastro = new conta();
solução!

Ola Marlon, o que Ramon quis dizer é que você esta chamando o método trasnfere antes de ter sido executado a criação do conta "rick", tenta executar assim sua classe Programa1:

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;

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;

israel.cadastro.transfere(500.0, rick); 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); }

}

Ops, esqueci de configurar a formatação:

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;


        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;


        israel.cadastro.transfere(500.0, rick);
        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);
    }


}