Olá pessoal, comecei estudar sobre Arrays, mas parei em um exercício. Tenho 3 classes: Funcionario, Empresa e TestaEmpresa. A classe empresa tem um atributo que é um array do objeto Funcionário, ao criar as instâncias na classe TestaEmpresa, eu vou adicionado cada funcionário nesse Array através de um método “adiciona”. O que eu queria fazer é depois de instanciados diversos funcionários(e preenchido seus atributos) percorrer esse array usando o foreach e imprimir o valor dos atributos que foi preenchido anteriormente. Já tentei alguns modos mas sem exito.
Classe Funcionário:
public class Funcionario {
String nome;
String departamento;
double salario;
String rg;
Data dataDeEntrada;
public void recebeAumento(double valor) {
this.salario += valor;
}
public double calculaGanhoAnual() {
return this.salario * 12;
}
public void descontoMensal(double valor) {
this.salario -= valor;
}
public void extraMensal(double valor) {
this.salario += valor;
}
public void mostra() {
System.out.println("");
System.out.println("None: " + this.nome);
System.out.println("Departamento: " + this.departamento);
System.out.println("Salário: R$ " + this.salario);
System.out.println("RG: " + this.rg);
System.out.println("Ganho anual: R$ " + calculaGanhoAnual());
System.out.println("Data de entrada: " + this.dataDeEntrada.getFormatada());
}
}
Classe Empresa:
public class Empresa {
String nome;
String cnpj;
String emai;
Funcionario[] colaboradores;
int contador=0;
public void adiciona(Funcionario funcionario) {
this.colaboradores[this.contador] = funcionario;
this.contador++;
}
//O laço com objetos que estou amarrado :cry:
public void mostraEmpregados() {
for(Funcionario colaborador : this.colaboradores) {
this.colaboradores.mostra();
}
}
}
Classe Testa Empresa:
public class TestaEmpresa{
public static void main(String[] args) {
Funcionario f1 = new Funcionario();
f1.nome = "Tharles Amaro";
f1.departamento = "Tecnologia";
f1.salario = 5000;
f1.rg = "000.000.000-00";
f1.dataDeEntrada.preencherData(27, 9, 1876);
Funcionario f2 = new Funcionario();
f2.nome = "Joaquim Nambuco";
f2.departamento = "Recepção Técnica";
f2.salario = 3500;
f2.rg = "123.456.789-09";
f2.dataDeEntrada.preencherData(14, 10, 1993);
Empresa empresa = new Empresa();
empresa.colaboradores = new Funcionario[2];
empresa.adiciona(f1);
empresa.adiciona(f2);
//empresa.colaboradores[0].mostra();
//empresa.colaboradores[1].mostra();
empresa.mostraEmpregados();
}
}
Erro ao tentar compilar a classe Testa Empresa:
javac TestaEmpresa.java
./Empresa.java:55: error: cannot find symbol
this.colaboradores.mostra();
^
symbol: method mostra()
location: variable colaboradores of type Funcionario[]
1 error