Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Desculpem-me pela pergunta, pois sou iniciante.
Estou fazendo uns exercícios e me deparei com um problema, segue parte do meu código:
class Empresa{
public String nome;
public String cnpj;
private Funcionario[] empregados;
public String rua;
public String bairro;
public int livre = 0;
public Funcionario getFuncionario(int posicao){
return this.empregados[posicao];
} return this.empregados = empregados;
} Empresa empresa = new Empresa();
empresa.empregados = new Funcionario[10];
Funcionario f1 = new Funcionario();
f1.nome = "Primeiro funcionario";
f1.departamento = "Faxina";
f1.setSalario(1000);
f1.setRg("37263857634");
f1.data = new Data();
f1.data.preencheData(12, 11, 2011);
empresa.adiciona(f1);
//...
if(empresa.contem(empresa.getFuncionario(2))){
System.out.println("");
System.out.println("");
System.out.println("Ok");
}else{
System.out.println("");
System.out.println("");
System.out.println("Funcionario não encontrado");
}
}}
Pois é, na quarta linha da EmpresaTeste estou iniciando o Array empregados da classe Empresa, mas o atributo está como private, já no fim da classe EmpresaTeste tenho um if que eu consegui ter acesso ao atributo empregados através do get.. Como faço para ter acesso quando tiver que iniciar uma Array?
por que se eu fizer
empresa.getEmpregados = new Funcionario[10];
ele me retornará um erro...
Tem que ter o get e o set do atributo privado.
public Funcionario[] getEmpregados(){
public void setEmpregados(Funcionario[] empregados){
você não pode acessar um atributo privado diretamente.
Depois você cria um array com os funcionarios e passa pelo setEmpregados(arrayDeFuncionarios)