Oi Lincoln, desculpe a demora, mas já estou cá de volta com a solução pro seu problema. São dois problemazinhos com ele.
Primeiro: Pelo que notei aqui, provavelmente você escreveu todo o codigo em um unico arquivo. Notei isso porque alguns pares de chaves {}
não fecham corretamente, verifique isso. Deveria ter uma chave no fim da classe empresa, mas essa chave está no fim do arquivo, parecendo ser uma classe só. Entende?
Depois de verificar as chaves, seu código roda sem problemas, mas dá um erro, NullPointerException.
Segundo: O NullPointerException acontece porque você atribui um array com 200 posições à empresa, mas só preenche a informação de CIC a três deles, e quando seu codigo tenta mostrar o do proximo funcionario, ele não encontra o CIC por ser uma string ele dispara o NullPointerException. Pra solucionar isso basta mudar o 200 na criação do array para 3 ou preencher as informações que faltam nos demais funcionários.
Obs: A classe Empresa não precisa do metodo main
nesse caso, mas a classe TestaEmpresa sim, pois esta é quem realmente executa o código. Por causa do problemas das chaves o java compilou todo o seu codigo em um unico arquivo .class, que na verdade, deveriam ser 3 arquivos, Funcionario, Empresa e TestaEmpresa, e você execuraria normalmente o TestaEmpresa. Essa compilação em um unico arquivo, "escondeu" o metodo main gerando o erro que você encontrou. Falei escondeu para não me estender muito na explicação.
Caso não tenha entendido, por favor, retorne comentando, que explicarei melhor o que aconteceu.
Abaixo está seu código corrigido e funcionando perfeitamente com as duas unicas modificações que fiz.
Boa sorte e bons estudos.
class Empresa{
Funcionario [] empregados;
void mostraEmpregados() {
for (int i = 0; i < this.empregados.length; i++) {
System.out.println("Funcionário na posição: " + i);
}
}
void mostraCIC(){
for (int j = 0; j < this.empregados.length; j++){
System.out.println("CIC:" + this.empregados[j].CIC);
}
}
}
class Funcionario {
String empregado;
String CIC;
private int livre;
private Funcionario[]empregados;
void adiciona(Funcionario f) {
this.empregados [this.livre] = f;
this.livre ++;
}
public void mostra() {
System.out.println("Funcionário na posição: " + empregado);
}
}
class TestaEmpresa {
public static void main (String[] args) {
Empresa BlueStar = new Empresa();
BlueStar.empregados = new Funcionario[3];
BlueStar.empregados[0] = new Funcionario();
BlueStar.empregados[0].empregado = "Dilermando";
BlueStar.empregados[0].CIC = "242.359.624-89";
BlueStar.empregados[1] = new Funcionario();
BlueStar.empregados[1].empregado = "Wellington";
BlueStar.empregados[1].CIC = "359.659.838-51";
BlueStar.empregados[2] = new Funcionario();
BlueStar.empregados[2].empregado = "Carlos";
BlueStar.empregados[2].CIC = "154.369.633-91";
BlueStar.mostraEmpregados();
BlueStar.mostraCIC();
}
private int livre;
private Funcionario[] empregados;
void mostraTodasAsInformacoes() {
for (int i = 0; i < this.livre; i++) {
System.out.println("Funcionário na posição: " + i);
((Funcionario) this.empregados[i]).mostra();
}
}
boolean contem(Funcionario f) {
for (int i = 0; i < this.livre; i++) {
if (f == this.empregados[i]) {
return true;
}
}
return false;
}
}