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

Gostaria de entender o erro

//Conta.java
package bytebank;

public class Conta {
    double saldo;
    int agencia;
    int numero;
    Cliente titular;

    public void deposita(double valor) {

        this.saldo += valor;
    }

    public boolean saca(double valor) {

        if (this.saldo >= valor) {
            this.saldo -= valor;
            return true;
        } else {
            return false;
        }
    }

    public boolean transfere(double valor, Conta contaDestino) {

        if (this.saldo >= valor) {
            this.saca(valor);
            contaDestino.deposita(valor);
            return true;
        }
        return false;
    }
}
//Cliente.java
package bytebank;

public class Cliente {

    String nome;
    String CPF;
    String profissao;
}
//CriaConta.java
package bytebank;

public class CriaConta {

    public static void main(String[] args) {
        Conta Conta1 = new Conta();
        Conta1.saldo = 200;
        Conta1.titular = guilherme; // Aqui está o erro de compilação !

        Conta1.deposita(50);
        Conta1.saca(120);

        Conta Conta2 = new Conta();
        Conta2.saldo = 50;

        Conta2.deposita(100);
        Conta2.saca(20);

        Conta1.transfere(30, Conta2);

        System.out.println("O saldo dessa conta é " + Conta1.saldo);
        System.out.println("O saldo dessa conta é " + Conta2.saldo);

    }
}
//CriaCliente.java
package bytebank;

public class CriaCliente {

    public static void main(String[] args) {
        Cliente guilherme = new Cliente();
        guilherme.nome = "Guilherme Mendes";
        guilherme.CPF = "222.222.222-22";
        guilherme.profissao = "estudante";

    }
}

Tentei fazer de uma forma sem criar outro projeto , deixando tudo no msm package e parece q os arquivos n fizeram o "link" necessário para atribuir um titular da classe cliente(guilherme) em uma conta já existente (Conta1)

3 respostas

Tente assim Guilherme

Mude:

public static void main(String[] args) {
        Cliente guilherme = new Cliente();
        guilherme.nome = "Guilherme Mendes";
        guilherme.CPF = "222.222.222-22";
        guilherme.profissao = "estudante";
}

Para:

public static Cliente criar(){
    Cliente guilherme = new Cliente();
        guilherme.nome = "Guilherme Mendes";
        guilherme.CPF = "222.222.222-22";
        guilherme.profissao = "estudante";
    return guilherme;
}

Agora tenta assim:

Conta Conta1 = new Conta();
Conta1.saldo = 200;
CriarCliente cliente = new CriarCliente();
Conta1.titular = cliente.criar(); // Aqui estava o erro de compilação !

Diga se deu certo!

Obrigado pela ajuda , mas acho que a sua resolução n é o objetivo da aula. Eu gostaria de uma explicação sobre o erro e uma maneira correta usando a teoria ensinada até agora.

solução!

Olá Guilherme, tudo bem?

Neste caso está dando erro, pq você está tentando atribuir ao objeto um outro que não existe no escopo da classe CriaConta. No caso, o objeto guilherme não é conhecido pela classe CriaConta.

O que você pode fazer é criar uma classe com o método criarCliente, como o Allan comentou no post anterior e chamar na sua classe CriarConta. Ou criar tudo na mesma classe.

Entendeu?

Qualquer dúvida, chama nóis. ;)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software