Fiquei pensando em relação ao método getTamanho, pois ele retorna o tamanho total, mas não quais posições estão ocupadas, teoricamente então ao chamar o metodo adiciona pela primeira vez, o tamanho do array vai ser 1 (no caso somente a posição 0 vai estar ocupada) e por conter no mesmo metodo a atribuição de valor no trecho( posicaoLivre ++), ao chamar o metodo novamente, o primeiro array vai deixar de existir e agora pela segunda vez o array vai ter tamanho 2 mas somente a posição 1 vai estar ocupada e o resto vai ser Null, esse raciocinio está correto ?