Olá pessoal, eu estou usando uma apostila e no meio dela exisitia um exercicio, onde eu devia add um funcionario em um array da classe Empresa, bom. segue o codigo:
Empresa:
class Empresa {
String cnpj;
Funcionario[] funcionarios;
int i;
void adiciona(Funcionario f) {
if (i < funcionarios.length) {
funcionarios[i] = f;
i++;
}
else {
System.out.println("Vetor cheio!");
}
}
int quantidadeFuncionarios() {
return i;
}
void mostraFuncionarios() {
for(int j=0; j<i; j++) {
System.out.println(funcionarios[j].nome);
System.out.println(funcionarios[j].depto);
System.out.println(funcionarios[j].salario);
System.out.print(funcionarios[j].dataDeEntrada.dia);
System.out.print("/"+funcionarios[j].dataDeEntrada.mes+"/");
System.out.println(funcionarios[j].dataDeEntrada.ano);
System.out.println(funcionarios[j].RG);
System.out.println(funcionarios[j].estaNaEmpresa+"\n");
}
}
}
Funcionario:
class Funcionario {
String nome;
String depto;
double salario;
Data dataDeEntrada = new Data();
String RG;
boolean estaNaEmpresa;
boolean bonifica(double valor) {
boolean bonificar = this.estaNaEmpresa;
if (this.estaNaEmpresa) {
this.salario += valor;
return true;
}
else {
return false;
}
}
boolean demite () {
if (this.estaNaEmpresa) {
this.estaNaEmpresa = false;
return true;
}
else {
return false;
}
}
void mostrar() {
System.out.println("\nNome: "+ this.nome);
System.out.println("Depto: "+ this.depto);
System.out.println("Salario: "+ this.salario);
System.out.println("Data Admissao: "+ this.dataDeEntrada.dia +"/"+ this.dataDeEntrada.mes + "/"+ this.dataDeEntrada.ano);
System.out.println("RG: "+ this.RG);
System.out.println("Status: "+ estaNaEmpresa);
}
}
TestaEmpresa ou main:
class TestaEmpresa {
public static void main (String[] args) {
Empresa e1 = new Empresa();
// faz a referencia ao array e estipula sua quantidade de posições do mesmo
e1.funcionarios = new Funcionario[2];
Funcionario f1 = new Funcionario();
f1.nome = "Arthur";
f1.depto = "Desenvolvimento";
f1.salario = 1000;
f1.dataDeEntrada.dia = 10;
f1.dataDeEntrada.mes = 03;
f1.dataDeEntrada.ano = 2007;
f1.RG = "RG 100";
f1.estaNaEmpresa = true;
Funcionario f2 = new Funcionario();
f2.nome = "Joaquim";
f2.depto = "Desenvolvimento";
f2.salario = 1200;
f2.dataDeEntrada.dia = 02;
f2.dataDeEntrada.mes = 12;
f2.dataDeEntrada.ano = 2005;
f2.RG = "RG 101";
f1.estaNaEmpresa = false;
e1.adiciona(f1);
e1.adiciona(f2);
System.out.println("Quantidade de Funcionário na Empresa " +e1.quantidadeFuncionarios()+"\n");
e1.mostraFuncionarios();
}
}
Gostaria de saber se vocês poderiam me ajudar a deixar esse código mais ‘elegante possivel’, acho que ficou muito complicado do modo que foi escrito.
ps.: o exercicio pedia para que tivesse sido feito com arrays