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)

Problema com constructor

Salve, rapaziada. Beleza? Seguinte... criei a seguinte classe:

package ubank;

public class Conta {
    private int numero;
    private int agencia;
    private int operacao;

    public Conta(int numero, int agencia, int operacao){
        this.numero = numero;
        this.agencia = agencia;
        this.operacao = operacao;        
    }

    public int getNumero() {
        return numero;
    }

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

    public int getAgencia() {
        return agencia;
    }

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

    public int getOperacao() {
        return operacao;
    }

    public void setOperacao(int operacao) {
        this.operacao = operacao;
    }

}

E esta para teste:

package ubank;

public class TestaConta {
    public static void main(String[] args) {
        Conta conta = new Conta(1,0602, 3);
        System.out.println("Número da conta: " + conta.getNumero());
        System.out.println("Agência da Conta: " + conta.getAgencia());
        System.out.println("Operação: " + conta.getOperacao());    
    }
}

Teoricamente, até onde vai meu entendimento até aqui, o resultado no console deveria ser:

Número da conta: 1 Agência da Conta: 0602 Operação: 3

No entanto, o que aparece é isso: Número da conta: 1 Agência da Conta: 386 Operação: 3

Já entendi que isso ocorre por conta do zero ser o primeiro dígito, mas por quê?

3 respostas
solução

Boa tarde Giovani, Beleza?

Em Java quando você declara um int iniciando por zero é tratado como se estivesse na base octal, por isso foi retornado o valor 386. Na sua implementação, talvez seja melhor declarar a variável agência do tipo String, visto que não tem muito sentido utilizar o número da agência de um cliente para realizar operações matemáticas.

Show de bola. Obrigado!

Oi Giovani, tranquilo?

Como resolveu o seu problema, estou fechando o tópico, ok? Qualquer coisa não hesite em abrir outro :)