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

Não reconhece a primeira instanciação da classe conta.

Classe GuardadorDeContas

package br.com.bytebank.banco.modelo;

public class GuardadorDeContas {

    private Conta[] referencias;
    private int posicaoLivre;

    public GuardadorDeContas () {
        this.referencias = new Conta[10];
        this.posicaoLivre = 0;
    }

    public void adiciona(Conta ref) {
        this.referencias[0] = ref;
        this.posicaoLivre++;
    }

    public int getQuatidadeDeElementos() {
        return this.posicaoLivre;
    }

    public Conta getReferencia(int pos) {

        return this.referencias[pos];
    }

}
____________________________________________________________

Classe Teste

package br.com.bytebank.banco.test;

import br.com.bytebank.banco.modelo.Conta;
import br.com.bytebank.banco.modelo.ContaCorrente;
import br.com.bytebank.banco.modelo.GuardadorDeContas;

public class Teste {

    public static void main(String[] args) {

        GuardadorDeContas guardador = new GuardadorDeContas();

        Conta cc = new ContaCorrente(22, 11);
        guardador.adiciona(cc);

        Conta cc2 = new ContaCorrente(22, 22);
        guardador.adiciona(cc2);

        int tamanho = guardador.getQuatidadeDeElementos();
        System.out.println(tamanho);

        Conta ref = guardador.getReferencia(0);
        System.out.println(ref.getNumero());
    }

}

Quando executo esse código passando a o valor 0 para a referencia ref ele acessa o segundo objeto (cc2) e quando passo o valor 1 na ref ele apresenta a a exceção NullPointerException. Não estou conseguindo enxergar o erro.

2 respostas
solução!

Oi Raphael,

No método adiciona

public void adiciona(Conta ref) {
        this.referencias[0] = ref;
        this.posicaoLivre++;
}

você está sempre guardando na posição 0. Você deveria guardar em this.posicaoLivre.

public void adiciona(Conta ref) {
        this.referencias[this.posicaoLivre] = ref;
        this.posicaoLivre++;
}

O erro está aqui:

    public void adiciona(Conta ref) {
        this.referencias[0] = ref;
        this.posicaoLivre++;
    }

Esse método sempre adiciona no index 0. Você precisa trocar this.referencias[0] por this.referencias[posicaoLivre].