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

setNumero não atualiza o número da agência

Olá, criei um projeto para treinar o encapsulamento porém, no meu código o setNumero, que deveria mudar o número da agencia não esta fazendo a alteração. Já dei umas olhadas mas não encontro o erro.

o resultado de retorno esta abaixo:

numero antigo: 0 numero novo: 0 <<<< aqui era para mudar para 1234

agencia antiga: 0 agencia nova: 6712

saldo antigo: 0.0 saldo novo: 150.0 saldo depois do saque: 115.0

esta é a classse Conta

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

public void deposita(double valor) {   
    //mostrando o que o metodo faz
    this.saldo = this.saldo + valor;
}

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

public boolean tranfere(double valor, Conta destino) {
    if (saldo >= valor) {
    this.saca(valor);
    destino.deposita(valor);
    return true;
    } else {
    return false;
    }
}

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

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

public int getNumero() {
    return this.agencia;
}
public void setAgencia(int agencia) {
    this.agencia = agencia;
}
public void setNumero(int novoNumero) {
    this.numero = novoNumero;
}

}

e esta é a classe testaEncapsulamento

public class testaEncapsulamento {

    public static void main(String[] args) {
        Conta joao = new Conta();

        System.out.println("numero antigo: " + joao.getNumero());
        joao.setNumero(1234);
        System.out.println("numero novo: " + joao.getNumero());
        System.out.println();

        System.out.println("agencia antiga: " + joao.getAgencia());
        joao.setAgencia(6712);
        System.out.println("agencia nova: " + joao.getAgencia());
        System.out.println();

        System.out.println("saldo antigo: " + joao.getSaldo());
        joao.deposita(150);
        System.out.println("saldo novo: " + joao.getSaldo());
        joao.saca(35);
        System.out.println("saldo depois do saque: " + joao.getSaldo());


    }

}

3 respostas
solução!

Oie Magno, tudo bem contigo?

Dentro do método getNumero, o return está errado, está sendo retornado o "this.agencia" ao invés do "this.numero".

Segue seu código corrigido:

public class Conta {

    private double saldo; 
    private int agencia; 
    private int numero; 
    private Cliente titular;

    public void deposita(double valor) {   
        //mostrando o que o metodo faz
        this.saldo = this.saldo + valor;
    }

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

    public boolean tranfere(double valor, Conta destino) {
        if (saldo >= valor) {
        this.saca(valor);
        destino.deposita(valor);
        return true;
        } else {
        return false;
        }
    }

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

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

    public int getNumero() {
        return this.numero; // o erro estava aqui, o certo é "return this.numero" e não "this.agencia"
    }
    public void setAgencia(int agencia) {
        this.agencia = agencia;
    }
    public void setNumero(int novoNumero) {
        this.numero = novoNumero;
    }

}

Espero ter ajudado, se ainda restar qualquer dúvida eu fico a disposição :)

Bons estudos!

Olá Igor, obrigado pelo retorno. Não tinha visto esse erro. Agora para testar tudo o que aprendi até aqui resolvi fazer um novo projeto identico a este, porém, começando do zero, sem copiar/colar para treinar e fixar. Mais uma vez agarrei na agencia, porém de uma forma diferente: eu comandei para que ela assumisse o número 0167 porém, ao executar, ela está assumindo o número 119... saberia me dizer o que é? Seguemabaixo os códigos:

Este é o resultado ao executar agencia: 0 numero: 0 cpf: null saldo: 0.0

Dados da conta da Rafaela agencia: 119 numero: 80000 saldo apos deposito: 300.0 saldo apos saque: 200.0

saldo rafaela apos transferencia: 50.0 saldo magno apos transferencia: 150.0

Dados de Rafaela CPF: 55555 Titular: Rafaela Covre Profissao: Comerciante Endereço: Praça Brasil

Dados de Magno CPF: 88888 Titular: Magno Silva Profissao: Ator Endereço: Rua Sao Joao

Esta é a Classe Principal

public class Principal { public static void main(String[] args) { Conta rafaelaConta = new Conta();

    //teste de valores padroes
    System.out.println("agencia: " + rafaelaConta.getAgencia());
    System.out.println("numero: " + rafaelaConta.getNumero());
    System.out.println("cpf: " + rafaelaConta.getCpf());
    System.out.println("saldo: " + rafaelaConta.getSaldo());
    System.out.println();

    //testa valores
    rafaelaConta.setAgencia(0167);
    rafaelaConta.setNumero(80000);
    System.out.println("Dados da conta da Rafaela");
    System.out.println("agencia: " + rafaelaConta.getAgencia());
    System.out.println("numero: " + rafaelaConta.getNumero());

    rafaelaConta.deposita(300);
    System.out.println("saldo apos deposito: " + rafaelaConta.getSaldo());
    rafaelaConta.saca(100);
    System.out.println("saldo apos saque: " + rafaelaConta.getSaldo());
    System.out.println();

    Conta magnoConta = new Conta();

    rafaelaConta.transfere(150, magnoConta);
    System.out.println("saldo rafaela apos transferencia: " + rafaelaConta.getSaldo());
    System.out.println("saldo magno apos transferencia: " + magnoConta.getSaldo());
    System.out.println();

    //testa inserir dados cliente
    Cliente rafaela = new Cliente();
    Cliente magno = new Cliente();

    rafaelaConta.setCpf(rafaela);
    magnoConta.setCpf(magno);

    rafaelaConta.getCpf().setCpf(55555);
    rafaelaConta.getCpf().setTitular("Rafaela Covre");
    rafaelaConta.getCpf().setProfissao("Comerciante");
    rafaelaConta.getCpf().setEndereco("Praça Brasil");

    System.out.println("Dados de Rafaela");
    System.out.println("CPF: " + rafaela.getCpf());
    System.out.println("Titular: " + rafaela.getTitular());
    System.out.println("Profissao: " + rafaela.getProfissao());
    System.out.println("Endereço: " + rafaela.getEndereco());
    System.out.println();

    magnoConta.getCpf().setCpf(88888);
    magnoConta.getCpf().setTitular("Magno Silva");
    magnoConta.getCpf().setProfissao("Ator");
    magnoConta.getCpf().setEndereco("Rua Sao Joao");

    System.out.println("Dados de Magno");
    System.out.println("CPF: " + magno.getCpf());
    System.out.println("Titular: " + magno.getTitular());
    System.out.println("Profissao: " + magno.getProfissao());
    System.out.println("Endereço: " + magno.getEndereco());
    System.out.println();


}

}

Esta é a Classe Conta

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

public void saca (double valor) { this.saldo -= valor; } public void deposita (double valor) { this.saldo += valor; } public void transfere (double valor, Conta destino) { this.saldo -= valor; destino.saldo += valor; } public double getSaldo() { return saldo; }public Cliente getCpf() { return cpf; }public int getAgencia() { return agencia; }public int getNumero() { return numero; }public void setAgencia(int novaagencia) { this.agencia = novaagencia; } public void setNumero(int numero) { this.numero = numero; } public void setCpf(Cliente cpf) { this.cpf = cpf; } }

Esta é a classe Cliente

public class Cliente {

private int cpf;
private String titular;
private String profissao;
private String endereco;
public String getTitular() {
    return titular;
}
public void setTitular(String titular) {
    this.titular = titular;
}
public String getProfissao() {
    return profissao;
}
public void setProfissao(String profissao) {
    this.profissao = profissao;
}
public String getEndereco() {
    return endereco;
}
public void setEndereco(String endereco) {
    this.endereco = endereco;
}
public int getCpf() {
    return cpf;
}
public void setCpf(int cpf) {
    this.cpf = cpf;
}

}

Opa Magno, tudo bem?

Perdão pela demora! Acabei de responder sua pergunta no tópico que você abriu hoje, segue o link:

Qualquer coisa é só mandar mensagem :)