3
respostas

Erro no getTitular, setNome e getNome

Pessoal estou com o código exatamente igual ao da aula, porém 3 linhas de códigos estão bugadas e não entendo o pq.


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

    public void deposita(double valor){
            System.out.println("Depositando R$ "+ valor);
            this.saldo += valor;
    }
    public boolean saca(double valor){
            System.out.println("Sacando R$ "+ valor);
            if (this.saldo >= valor){
                    this.saldo -= valor;
                    return true;
            } else {
                    System.out.println("Saldo insuficiente.");
                    return false;
            }
    }


    public boolean transfere(double valor, Conta destino){
            System.out.println("Transferindo R$ "+ valor);
            if (this.saldo >= valor){
                    this.saldo -= valor;
                    destino.deposita(valor);
                    return true;
            } else {
                    System.out.println("Saldo insuficiente.");
                    return false;
            }
    }
    public double pegaSaldo(){
            return this.saldo;
    }


    public int getNumero(){
            return this.numero;
    }
    public int setNumero(int numero) {
            this.numero = numero;
            return this.numero;
    }


    public int getAgencia() {
            return agencia;
    }
    public void setAgencia(int agencia) {
            this.agencia = agencia;
    }

    public void setTitular(Cliente titular) {
            this.titular = titular;
    }
    public Cliente getTitular() {
            return this.titular;
    }

}


public class Cliente { private String nome; private String cpf; private String profissao;

public String getNome() {
    return nome;
}

public String getCpf() {
    return cpf;
}

public String getProfissao() {
    return profissao;
}
______________________________________________________________________

public class TestaGetEset {
public static void main(String[] args) {
    System.out.println();

    Conta conta = new Conta();
    conta.setNumero(1337);
    System.out.println(conta.getNumero());

    Cliente paulo = new Cliente();
    paulo.setNome(paulo);

    conta.setTitular(paulo);

    System.out.println(conta.getTitular().getNome());
}

}


Na classe TestaGetAndSet as linhas do setNome(paulo) e getNome() estão bugadas.

3 respostas

Oi Gabriel,

o seu método setNome() não está no código apresentado, mas vou supor o formato padrão:

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

Tem um pequeno erro nesse pedaço de código:

Cliente paulo = new Cliente();
paulo.setNome(paulo); //<---------

Você declarou um objeto Cliente paulo e na hora de fazer o setNome você está usando o próprio objeto ao invés de uma String que é o que o método aceita. Tente modificar colocando o nome dentro de aspas.

Cliente paulo = new Cliente();
paulo.setNome('paulo');

Primeiramente, muito obrigado pela atenção GIl, mas as observações feitas não deram certo. Não sei pq, não está sendo possível chamar nenhum setter ou getter da classe cliente.

Não sei se está correto, mas linha de código >> conta.setTitular(paulo); << aponta para o objeto cliente paulo mesmo. Tanto é que o atributo Titular da classe conta é >> private Cliente titular; <<

Não sei se responde o pq não deu certo as sugestões, mas desde já agradeço!

Oi Gabriel, pelo que vi, seus métodos para titular estão ok e sim, setTitular deve apontar para o objeto. A mudança que ofereci seria para chamar o setter do nome. Vc pode mandar um print do erro que está sendo gerado?

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