Pessoal, ao colocar o private na variável:
private Funcionario[] empregados;
Da classe empresa, tive o seguinte erro:
TestaFuncionario.java:139: error: empregados has private access in Empresa
empresa.empregados = new Funcionario[10];
^
TestaFuncionario.java:154: error: empregados has private access in Empresa
empresa.contem(empresa.empregados[5]);
^
2 errors
Este erro acontece na missa Classe : "TestaFuncionario". Por ser uma array, como passo a referência do atributo na hora da construção da instância na minha classe principal? Abaixo o código completo:
class Empresa{
private String nomeEmpresa;
private String cnpj;
private Funcionario[] empregados;
private int livre = 0;
public String getNomeEmpresa(){
return this.nomeEmpresa;
}
public void setNomeEmpresa(String nomeEmpresa){
this.nomeEmpresa = nomeEmpresa;
}
public String getCnpj(){
return this.cnpj;
}
public void setCnpj(String cnpj){
this.cnpj = cnpj;
}
public void adicionaFuncionario (Funcionario f){
this.empregados[this.livre] = f;
this.livre++;
}
public void mostraEmpregados() {
for(int i = 0; i < this.empregados.length; i++){
if (this.empregados[i]!= null){
System.out.println("Funcionario na posicao: " + i + " - " + this.empregados[i].getNome());
System.out.println("R$ " + this.empregados[i].getSalario());
}
}
}
public void mostraTodasAsInformacoes() {
for(int i = 0; i < this.empregados.length; i++){
if (this.empregados[i]!= null){
this.empregados[i].mostra();
}
}
}
public boolean contem (Funcionario f){
for(int i = 0; i < this.empregados.length; i++){
if (this.empregados[i] == f) {
return true;
}
}
return false;
}
}
class Funcionario{
private String nome;
private String departamento;
private double salario;
private String rg;
private Data dataEntrada;
public String getNome(){
return this.nome;
}
public void setNome(String nome){
this.nome = nome;
}
public String getDepartamento(){
return this.departamento;
}
public void setDepartamento(String departamento){
this.departamento = departamento;
}
public double getSalario(){
return this.salario;
}
public void setSalario(double salario){
this.salario = salario;
}
public String getRg(){
return this.rg;
}
public void setRg(String rg){
this.rg = rg;
}
public Data getDataEntrada(){
return this.dataEntrada;
}
public void setDataEntrada(Data dataEntrada){
this.dataEntrada = dataEntrada;
}
public void recebeAumento(double aumento){
this.salario += aumento;
}
public double getGanhoAnual(){
return this.salario*12;
}
public void mostra(){
System.out.println ("Nome: " + this.getNome() + "\nDepartamento: " + this.getDepartamento() + "\nData Admiss\u00e3o: " + this.getDataEntrada().getFormatada()
+"\nRG: " + this.getRg()+ "\nSalario: " + this.getSalario() + "\nGanho Anual: " + this.getGanhoAnual()+"\n");
}
}
class Data{
int dia;
int mes;
int ano;
public void recebeData (int dia, int mes, int ano){
this.dia = dia;
this.mes = mes;
this.ano = ano;
}
public String getFormatada() {
return this.dia + "/" + this.mes + "/" + this.ano;
}
}
class TestaFuncionario {
public static void main (String[] args){
Empresa empresa = new Empresa();
empresa.empregados = new Funcionario[10];
for (int i = 0; i < 5; i++){
Funcionario f = new Funcionario();
f.setNome("Jos\u00e9");
f.setDepartamento("Custos");
f.setSalario(1000.00+10*(i));
f.setRg("A-33333333");
Data data = new Data();
data.recebeData(5,5,2008+i);
f.setDataEntrada(data);
f.recebeAumento(100);
empresa.adicionaFuncionario(f);
}
empresa.mostraTodasAsInformacoes();
empresa.contem(empresa.empregados[5]);
}
}