Boa noite, sou iniciante em Java e estou tendo problemas no entendimento de array como atributo, no código abaixo foi criado um array listadeanimais como atributo que é do tipo objeto Animal, no momento de dar um new no array ele está preenchido com o atributo capacidade no construtor da classe e no método adicionarAnimal ele já está com o atributo quantidade de animais :shock: . Não entendo o porque da mudança de atributo dentro do array e como isso funciona.
Ao criar um PetShop, já é determinado qual a quantidade máxima de animais que podem ser internados. O método adicionarAnimal verifica isso e emite um aviso de “Casa cheia”, caso o limite de animais já tenha sido alcançado. Perceba que, antes de usar um array, você tem sempre que determinar o tamanho dele. Por isso está presente no construtor essa configuração de tamanho.
[quote=TerraSkilll]Ao criar um PetShop, já é determinado qual a quantidade máxima de animais que podem ser internados. O método adicionarAnimal verifica isso e emite um aviso de “Casa cheia”, caso o limite de animais já tenha sido alcançado. Perceba que, antes de usar um array, você tem sempre que determinar o tamanho dele. Por isso está presente no construtor essa configuração de tamanho.
Se não ficou claro, avisa.
Abraço.[/quote]
Enquanto a determinação do array tudo tranquilo, mas a o problema que estou tendo é com relação ao atributo listaanimais que recebe como tamanho o atributo capacidade no construtor e depois no método adicionaranimal ele recebe como tamanho o atributo quantidadeAnimais, não entendo como um único array pode ter mais de um atributo como tamanho.
[quote=els1234]Um é a quantidade de elementos que o array pode conter. O outro é a posição onde vai guardar no array.
Creio que seja isso.[/quote]
É isso mesmo, o atributo capacidade é utilizado para definir o tamanho do array, agora o atributo quantidadeAnimais (Que pode ter te confundido pelo nome) simplesmente define em qual índice do array está sendo atribuído o Animal.
[quote=els1234]Um é a quantidade de elementos que o array pode conter. O outro é a posição onde vai guardar no array.
Creio que seja isso.[/quote]
Analisando o código acredito que é isso mesmo els1234, mas colocando em prática fica confuso, por exemplo: digamos que o usuário criou um novo objeto Petshop e definiu como parâmetro de capacidade o valor inteiro 10, foi criado um array com capacidade de 10 posições, até aí tudo bem mas ao adicionar um animal ele adiciona na posição quantidade deanimais que posição seria essa já que o vetor criado foi de 10 posições?