Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se
Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida sobre "setAgencia"

Gostaria de tirar uma dúvida. Conforme fui criando os projetos java. Em específico quando o professor pediu pra criar o projeto "bytebank-encapsulado" observei um comportamento curioso do Eclipse. Seguem meus códigos

Arquivo: Conta.java

public class Conta {
    private double saldo;
    private int agencia;
    private int numero;
    private 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 destino) {
        if(this.saldo>=valor) {
            this.saldo-=valor;
            destino.deposita(valor);
            return true    ;        
        } else {
            return false;
        }        
    }

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

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

    public void setNumero(int numero){
        this.numero=numero;

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

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

Arquivo: TestaGeteSet


public class TestaGeteSet {

    public static void main(String[] args) {
        Conta conta = new Conta();
        //conta.numero=1337
        conta.setNumero(1337);
        System.out.println(conta.getNumero());
        conta.setAgencia(0101);
        System.out.println(conta.getAgencia());;
    }
}

O console retorna:

1337 65

Eu esperava 1337 0101

Alguém sabe o pq?

3 respostas

Acredito que o zero a esquerda pode interferir.

solução!

O retorno é 65 pois, números inteiros que iniciam com 0 o Java entende que é um Octal, então ele trata como tal. 0101 convertido para decimal é 65.

Obrigado pelas resposta. Entendi o que aconteceu.

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