Galera, estou aqui de novo, penando muito. rs
Seguinte, estou fazendo o exercicio de array da apostila FJ-11 da Caelum.
Vou passar o código que eu fiz e depois minhas dúvidas.
Essa é a classe Empresa;
public class Empresa {
String nomedaempresa;
String cnpj;
Funcionario[] empregados;
static int contador = 0;
void adiciona(Funcionario f) {
if (contador < 10) {
this.empregados[contador++] = f;
}
System.out.println("Funcionario: " + contador);
}
void mostraEmpresa() {
for (int i = 0; i < empregados.length; i++) {
System.out.println("Total de empregados: " + i);
}
}
}
A classe funcionario;
public class Funcionario {
String nome;
String departamento;
double salario;
String rg;
boolean trabalhaAtual;
Data dataAdmis;
void bonifica(double quantidade) {
double novoSalario = this.salario + quantidade;
this.salario = novoSalario;
}
void mostra() {
System.out.println("Nome: " + this.nome);
System.out.println("Departamento: " + this.departamento);
System.out.println("Salario: " + this.salario);
System.out.println("Rg: " + this.rg);
System.out.println("Data Admissão: dia " + this.dataAdmis.dia);
System.out.println("Data Admissão: mes " + this.dataAdmis.mes);
System.out.println("Data Admissão: ano " + this.dataAdmis.ano);
}
}
E finalmente a classe main para execução;
public class TestaEmpresa {
public static void main(String[] args) {
Empresa empresa = new Empresa();
empresa.nomedaempresa = "Metalurgica";
empresa.cnpj = "9849846-165";
empresa.empregados = new Funcionario[3];
System.out.println("*********************************");
Funcionario funcionario1 = new Funcionario();
empresa.adiciona(funcionario1);
funcionario1.nome = "vinicius";
funcionario1.rg = "35464651";
funcionario1.salario = 9849.65;
funcionario1.departamento = "TI";
funcionario1.bonifica(1000.65);
funcionario1.trabalhaAtual = true;
funcionario1.dataAdmis = new Data();
funcionario1.dataAdmis.mes = 12;
funcionario1.dataAdmis.ano = 2008;
funcionario1.dataAdmis.dia = 13;
funcionario1.mostra();
System.out.println("*********************************");
Funcionario funcionario2 = new Funcionario();
empresa.adiciona(funcionario2);
funcionario2.nome = "aluno";
funcionario2.rg = "9846";
funcionario2.salario = 49.65;
funcionario2.departamento = "aula";
funcionario2.bonifica(650.65);
funcionario2.trabalhaAtual = false;
funcionario2.dataAdmis = new Data();
funcionario2.dataAdmis.mes = 8;
funcionario2.dataAdmis.ano = 2007;
funcionario2.dataAdmis.dia = 17;
funcionario2.mostra();
System.out.println("*********************************");
Funcionario funcionario3 = new Funcionario();
empresa.adiciona(funcionario3);
funcionario3.nome = "xxx";
funcionario3.rg = "d98498";
funcionario3.salario = 9999.65;
funcionario3.departamento = "lab";
funcionario3.bonifica(333.65);
funcionario3.trabalhaAtual = true;
funcionario3.dataAdmis = new Data();
funcionario3.dataAdmis.mes = 8;
funcionario3.dataAdmis.ano = 2007;
funcionario3.dataAdmis.dia = 17;
funcionario3.mostra();
System.out.println("*********************************");
empresa.mostraEmpresa();
}
}
Aqui está o exercício, eu realmente estou tendo dificuldade em resolver, eu até entendi o enunciado mas não sei como utilizar as funções, podem me ajudar?
- Percorra o atributo empregados da sua instância da Empresa e imprima o salários de todos seus funcionários.
Para fazer isso, você pode criar um método chamado mostraEmpregados dentro da classe Empresa:
void mostraEmpregados() {
for (int i = 0; i < this.empregados.length; i++) {
System.out.println("Funcionário na posição: " + i);
// preencher para mostrar o salário!!
}
}
...
Cuidado ao preencher esse método: alguns índices do seu array podem não conter referência para um
Funcionario construído, isto é, ainda se referirem para null. Se preferir, use o for novo do java 5.0.
Aí, através do seu main, depois de adicionar alguns funcionários, basta fazer:
empresa.mostraEmpregados();
(opcional) Em vez de mostrar apenas o salário de cada funcionário, você pode chamar o método mostra()
de cada Funcionario da sua array.
Grato desde já.