Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Resolução do Desafio

Boa Devs, segue resolução do Desafio, Os comentarios estão em inglês por que estou treinando meu inglês.

package br.com.bytebank.banco.modelo;

public class GuardadorDeContas {

        //Attributes
        private Object[] referencias;
        private int posicaoLivre;

        //Constructor
        public GuardadorDeContas() {
            this.referencias = new Object[10];
            this.posicaoLivre = 0;
    }
        //Insert new Object
        public void adiciona(Object ref) {
            this.referencias[this.posicaoLivre] = ref;
            this.posicaoLivre++;
        }

        //Number of objects
        public int getQuantidadeDeElementos() {
            return this.posicaoLivre;
        }

        //Pull object reference 
        public Object getReferencia(int pos) {
            return this.referencias[pos];
        }
}

Nessa classe eu optei por fazer um cast nessa linha Conta ref = (Conta) guardador.getReferencia(1); por que o que eu queria trazer era uma conta e e caso nessa posição tivesse qualquer outra coisa teriamos uma exceção e assim ja fiz o tratamento da mesmo.

package br.com.bytebank.banco.test;

import br.com.bytebank.banco.modelo.*;

public class Teste {
    public static void main(String[] args) {
        //-->Start Main<--//

        //Call constructor class GuardadorDeContas
        GuardadorDeContas guardador = new GuardadorDeContas();

        //Create news Objects
        Conta cc1 = new ContaCorrente(1234,4321);
        Conta cc2 = new ContaCorrente(4321,1234);

        //Insert reference in list
        guardador.adiciona(cc1);
        guardador.adiciona(cc2);

        //Create attribute for verification array length
        int tamanho = guardador.getQuantidadeDeElementos();
        System.out.println(tamanho);

        //Call Object in specific position
        try{
            Conta ref = (Conta) guardador.getReferencia(1);
            System.out.println(ref.getNumero());
        }catch (Exception ex) {
            System.out.println(ex.getMessage());
        }



    //-->End Main<--//    
    }
}
1 resposta
solução!

Oie Fernando, tudo bem contigo?

Seu código ficou muito bom, muito legal que você tenha compartilhado ele aqui com a gente :)

Um único adendo que eu dou é que usar a classe Object como referência nessa situação não faz muito sentido já que a única coisa que a classe GuardadorDeContas, como já diz o nome, irá receber são objetos do tipo Conta, por isso é melhor que a variável "referências" seja declarada tendo como referência a classe Conta e não a Object, fazendo isso você irá evitar de ter que fazer o "cast" de Object para Conta na classe Teste.

De resto seu código está perfeito ^^

Continue assim e bos estudos!