Arrays tem sido a parte mais difícil do curso até o momento, eu não sabia exatamente o que fazer então recorri a resposta do exercício e dei um "paste". O prompt aponta que não reconhece o ponto (" . ") na linha:
for (int i = 0; i < this.livre; i++)
na class EMPRESA no métdo mostraTodasAsInformações(). Não entendi o por que deste LIVRE ele substitui o LENGTH? O código ficou assim:
class Empresa { String nome; Funcionario[] empregados; int cnpj;
void adiciona (Funcionario f) { for (int i=0; i<this.empregados.length; i++) { if (empregados[i] == null) { this.empregados[i]=f; }else{ continue; } } }
void mostraEmpregados() { for (int i = 0; i< this.empregados.length; i++) { System.out.println("Funcionário na posição" + i); System.out.println("R$" + this.empregados[i].salario); } }
void mostraTodasAsInformacoes() { for (int i = 0; i < this.livre; i++) { System.out.println("Funcionário na posição: " + i); this.empregados[i].mostra(); } }
}
class TestaEmpresa{
public static void main (String[]args){ Empresa empresa = new Empresa(); empresa.empregados = new Funcionario[2];
Funcionario f1 = new Funcionario(); Data dataFuncionario1 = new Data(); f1.salario = 1000; f1.dataDeEntrada = dataFuncionario1; empresa.adiciona(f1);
Funcionario f2 = new Funcionario(); Data dataFuncionario2 = new Data(); f2.dataDeEntrada = dataFuncionario2; f2.salario = 3000; empresa.adiciona(f2);
empresa.empregados[0].mostra(); empresa.empregados[1].mostra();
empresa.mostraEmpregados();
}
}
class Data { int dia; int mes; int ano;
void preencheData (int dia, int mes, int ano){ this.dia = dia; this.mes = mes; this.ano = ano;
}
String getFormatada() { return this.dia + "/" + this.mes + "/" + this.ano;}
}
class Funcionario {
String nome; String departamento; double salario; Data dataDeEntrada; String rg;
void recebeAumento(double aumento){ this.salario += aumento; }
double calculaGanhoAnual() { return this.salario*=12; }
void mostra() { System.out.println("Nome:" + this.nome); System.out.println("Departamento:"+this.departamento); System.out.println("Salario:"+this.salario); System.out.println("dataDeEntrada:"+this.dataDeEntrada); System.out.println("RG"+this.rg); System.out.println("Ganho Anual"+this.calculaGanhoAnual()); System.out.println("Dia: " + this.dataDeEntrada.dia); System.out.println("Mês: " + this.dataDeEntrada.mes); System.out.println("Ano: " + this.dataDeEntrada.ano); System.out.println("Data de entrada: " + this.dataDeEntrada.getFormatada());
}
}
class TestaFuncionario{
public static void main(String[]args){ Funcionario f1= new Funcionario();
f1.nome = "Marcia"; f1.departamento = "administrativo"; f1.salario = 1500; f1.rg = "12335"; f1.recebeAumento (250);
//adicionando a data como tipo f1.dataDeEntrada = new Data(); f1.dataDeEntrada.preencheData(13, 5,2014); f1.mostra();
System.out.println("Salário atual:" + f1.salario); System.out.println("Ganho Anual:" + f1.calculaGanhoAnual());
Funcionario f2=f1;
if (f1 == f2) { System.out.println("iguais"); } else { System.out.println("diferentes"); }
}
}