Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Dúvida modificador private em variável do tipo array

class Empresa {
    private String nomeDaEmpresa;
    private String cnpj;
    private String enderecoDaEmpresa;
    Funcionario [] colaboradores;
    private int livre = 0;

    //...
}
class TestaEmpresa {
    public static void main (String[] args) {
        Empresa empresa = new Empresa ();
        empresa.colaboradores = new Funcionario[10];
    //...

}

Ao atribuir o modificador private a "Funcionario [] colaboradores;" , como irei instanciar o array objeto Funcionario? Exemplo:

class Empresa {
    private String nomeDaEmpresa;
    private String cnpj;
    private String enderecoDaEmpresa;
    private Funcionario [] colaboradores;
    private int livre = 0;

    //...
}

class TestaEmpresa {
    public static void main (String[] args) {
        Empresa empresa = new Empresa ();
        empresa.colaboradores = new Funcionario[10]; //Como farei aqui???

    //...

}

OBS.: Se os termos aqui utilizados estiverem incorretos, por favor, corrigir.

4 respostas
solução!

Você pode usar um método que adiciona este array pra você. Esse é um conceito de setter.

Costumamos usar bastante o conceito de getters e setters. São métodos que nos ajudam a inserir ou pegar valores de atributos privados de uma classe.

Neste caso você poderia fazer:

public void setColaboradores(Funcionario[] funcionarios) {
    this.colaboradores = funcionarios;
}

E repare que os setters e getters são sempre públicos. Assim podemos controlar toda a lógica de atribuição aos atributos que são privados.

Thalita,

Nesse ponto, você faz a declaração do array de objetos do tipo Funcionario.

class Empresa {
//
    private Funcionario [] colaboradores;
//
}

Aqui

class TestaEmpresa {
    public static void main (String[] args) {
//
        empresa.colaboradores = new Funcionario[10];
//
}

você está instanciando o array.

Para adicionar os funcionários no array, usamos o conceito de setter, que o Lucas explicou acima, que é um método da classe que isola a array e, dessa forma, só é possível adicionar os objetos na array passando por esse método.

Você verá esse conceito de getter e setter logo mais.

Se ainda tiver dúvida, só postar!

Abraço.

Obrigada pela ajuda, amigos!

Segue abaixo a modificação que realizei.

class Empresa {
    private Funcionario [] colaboradores;
    //...

    public void setColaboradores (Funcionario [] funcionarios){
        this.colaboradores = funcionarios;

    //...
    }
}

class TestaEmpresa {
    public static void main (String[] args) {

        Empresa empresa = new Empresa ();
        Funcionario [] f = new Funcionario [10];

        empresa.setColaboradores (f);
    //...

    }
}

Legal, Thalita.

Isso mesmo!

E lembre-se que você pode escrever seu código entre ``` para aparecer formatado.

exemplo

```

empresa.setColaboradores(f);

```

Aparecerá como

empresa.setColaboradores(f);

O botão inserir código ajuda nesse processo ;)

Bons estudos!