3
respostas

Dúvida

Enunciado: "Ou você pode construir a array dentro da própria declaração da classe Empresa, fazendo com que toda vez que uma Empresa é instanciada, a array de Funcionario que ela necessita também é criada."

como eu poderia fazer desse jeito, sem ter que criar no main? obrigada

3 respostas

Tainá, existem diversas maneiras de resolver esse problema sem ter que passar pelo main. Porém, eu ainda não tenho muita certeza da sua dúvida, então veja se eu entendi, você quer criar o array de Funcionario sem ser no main?

isso alex, no caso em outra classe, sabe? para toda vez que eu instanciar uma nova empresa ele ja abrir o array para os funcionarios, sabe?

Existem duas formas de fazer isso, a primeira forma é basicamente você instanciar o array diretamente no objeto funcionarios da classe Empresa

public class Empresa {

    public Funcionario[] funcionarios = new Funcionario[10];


}

Nesse momento, todas as vezes que você instânciar uma empresa, você vai criar um array de funcionários com 10 posições para o objeto.

Agora a questão de criar todos os funcionários utilizando a instrução de repetição for, como nesse exemplo:

for (int i = 0; i < 10; i++) {
            Funcionario f = new Funcionario();
            f.salario = 1000 + i * 100;
            funcionarios[i] = f;
        }

Só da pra fazer utilizando os construtores das classes (que no caso é a segunda forma de resolver também a primeira dúvida), que é visto na aula de construtores, segue o link para mais detalhes https://cursos.alura.com.br/course/primeiros-passos-com-java/section/6.

Caso ainda ficar com dúvida sobre como fazer isso com construtores, é só avisar ;)

Prefiro que você veja primeiro na aula, pois dessa forma, você vai compreender melhor.