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

Duvida tamanho Array

1 - Criamos um campo itens dizendo que é um Array [] do tipo CC; Aqui nós não dizemos o tamanho da Array. 2 - Ao ser instanciado, esse Array passa a ter cinco elementos (itens = new ContaCorrente[5];) 3 - Depois quando queremos adicionar mais um item, o fazemos criando um novoArray, passando a referência da memória para o itens (this.itens = novoArray;)

Isso significa que o tamanho dessa Array _itens é variável de acordo com o que quisermos?

1 resposta
solução!

Até aqui deu pra entender mais ou menos.

"Criamos um campo itens dizendo que é um Array [] do tipo CC; Aqui nós não dizemos o tamanho da Array. 2 - Ao ser instanciado, esse Array passa a ter cinco elementos (itens = new ContaCorrente[5];)"

Então, sim, primeiro temos que entender que o Array é uma estrutura fixa, ela não se redimensiona no decorrer do código. Diferente da lista, se você declarar que o Array tem 5 posições, mesmo que você esteja utilizando apenas 1 posição, o compilador vai separar um espaço de memória para 5 posições(Mesmo não usando todas? Sim).

Já uma lista nem precisa de declaração de tamanho, ela vai se ajustando de acordo com o que você vai colocando lá dentro.

Com o Array, se você "Redimensiona-lo", na verdade você terá que fazer isso na declaração dele, ou seja aqui ´´´int[] teste = new int[5];`, mas o que vai acontecer na realidade é fazer o compilador criar outro objeto e em outra posição de memória e obviamente você vai ter problemas.

Sobre isso "Aqui nós não dizemos o tamanho da Array.":

Temos que dizer o tamanho do Array, a declaração correta é esta int[] teste = new int[5]; e não estaint[] teste = new int[];, isso nem compila. Então você diz, desde o início, qual o tamanho dele.

Isso eu não entendi, acho que esse código não está correto.

"3 - Depois quando queremos adicionar mais um item, o fazemos criando um novoArray, passando a referência da memória para o itens (this.itens = novoArray;)"

Você pode fazer uma estrutura de repetição para adicionar um novo item, neste caso sem estrutura de repetição daria para fazer, mas teria que ser algo assim:

(this.itens[0] = novoArray[0];)

Assim funciona, mas depois olha uma estrutura de repetição para inserir vários itens de uma vez ou imprimir.

Por fim a sua resposta, "Isso significa que o tamanho dessa Array _itens é variável de acordo com o que quisermos?" com base no que eu expliquei encima a resposta é NÃO depois da declaração.

Vale a pena dar uma lida na documentação:

https://docs.microsoft.com/pt-br/dotnet/csharp/programming-guide/arrays/

https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/language-specification/arrays#array-creation

Também estou estudando, isso ai é com base no que eu aprendi até agora e no que eu aprendi lendo a documentação

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