Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Erro na compilação do código.

Meu código é:

class Empresa {

    String nome;
    String cnpj;
    Funcionario[] funcionarios;
    int livre = 0;

    void adiciona(Funcionario f) {

        this.funcionarios[this.livre] = f;
        this.livre++;

    }

    void mostraTodasAsInformacoes() {
    for (int i = 0; i < this.funcionarios.length; i++) {

        Funcionario funcionario = this.funcionarios[i];

                if(funcionario == null) continue;

        System.out.println("Funcionário na posição: " + i);

        funcionario.mostra();
    }
}
void mostra() {

        System.out.println("===========================================================");
        System.out.println();
        System.out.println("*********************************************************");
        System.out.println(" MOSTRANDO TODAS AS INFORMAÇÕES DE TODOS OS FUNCIONARIOS ");
        System.out.println("*********************************************************");
        System.out.println();

        for(int i = 0; i < this.funcionarios.length; i++) {

            Funcionario funcionario = this.funcionarios[i];

                if(funcionario == null) continue;

        System.out.println("Nome do Funcionario: " + funcionario.nome);
        System.out.println();
        System.out.println("Sua Função é: " + funcionario.funcao);
        System.out.println();
        System.out.println("Tem um salario de: " + funcionario.salario);
        System.out.println();
        System.out.println("Teve um aumento de: " + funcionario.aumento);
        System.out.println();
        System.out.println("Seu vale refeição tem valor de: " + funcionario.vale);
        System.out.println();
        System.out.println("Seu salario mais o aumento ficou: " + funcionario.salarioMaisAumento());
        System.out.println();
        System.out.println("Seu salario mais aumento e vale ficou: " + funcionario.salarioMaisValeMaisAumento());
        System.out.println();
        System.out.println("Com isso passou a ganhar por ano: " + funcionario.ganhoTotalPorAno());
        System.out.println();
        System.out.println("Sua data de contratação foi: " + funcionario.dataDeEntrada.getFormatada);
        System.out.println();
        System.out.println("===========================================================");

        }
    }
class Funcionario {

    String nome;
    String funcao;
    double salario;
    double aumento;
    double vale;
    Data dataDeEntrada;

    double salarioMaisAumento() {

        return this.salario + this.aumento;

    }

    double salarioMaisValeMaisAumento() {

        return this.salario + this.aumento + this.vale;

    }

    double ganhoTotalPorAno() {

        return this.salarioMaisValeMaisAumento() * 12;
    }
}

class Data { 

    String getFormatada;

    void getFormatada(int dia, int mes, int ano) { 

        this.getFormatada = dia + "/" + mes + "/" + ano;
    }
}
class TestaEmpresa {

    public static void main(String[] args) {

    //====================================================================//
        //Criando uma nova empresa.
        Empresa emp1 = new Empresa();
            emp1.nome = "Comercial Carvalho";
            emp1.cnpj = "10.354.987/0003-38";
    //====================================================================//

    //====================================================================//
        //Criando um novo Array de Funcionario;
        Funcionario func0 = new Funcionario();
        emp1.funcionarios = new Funcionario[10];

        // Criando o 1º funcionario;
        emp1.funcionarios[0] = new Funcionario();
            emp1.funcionarios[0].nome = "Mauricio";
            emp1.funcionarios[0].funcao = "Motorista";
            emp1.funcionarios[0].salario = 3560;
            emp1.funcionarios[0].aumento = 55;
            emp1.funcionarios[0].vale = 45;

        emp1.funcionarios[0].dataDeEntrada = new Data();
            emp1.funcionarios[0].dataDeEntrada.getFormatada(20, 10, 2014);

        emp1.adiciona(emp1.funcionarios[0]); // adicionando o funcionario no Array.
    //====================================================================//

    //====================================================================//

        //Criando um novo funcionario;

        Funcionario func1 = new Funcionario();
        //emp1.funcionarios = new Funcionario[10]; Tem que tomar cuidado porque aqui estou jogando o array fora sempre.

        emp1.funcionarios[1] = new Funcionario();
            emp1.funcionarios[1].nome = "Felipe";
            emp1.funcionarios[1].funcao = "Bebezinho";
            emp1.funcionarios[1].salario = 5000;
            emp1.funcionarios[1].aumento = 100;
            emp1.funcionarios[1].vale = 45;

        emp1.funcionarios[1].dataDeEntrada = new Data();
            emp1.funcionarios[1].dataDeEntrada.getFormatada(30,05,2015);


        emp1.adiciona(emp1.funcionarios[1]);

emp1.mostraTodasAsInformacoes();


    }
}
4 respostas

O erro que aparece é:

Empresa.java:24: error: cannot find symbol funcionario.mostra(); // A seta aponta para o ponto.

symbol: method mostra()
location: variable funcionario of type Funcionario 1 error
solução!

Olá Pablo,

O erro ocorre pois o método mostra está fora da classe funcionário, você precisa coloca-lo dentro da classe conforme o exemplo abaixo:

class Funcionario {

    String nome;
    String funcao;
    double salario;
    double aumento;
    double vale;
    Data dataDeEntrada;

    double salarioMaisAumento() {

        return this.salario + this.aumento;

    }

    double salarioMaisValeMaisAumento() {

        return this.salario + this.aumento + this.vale;

    }

    double ganhoTotalPorAno() {

        return this.salarioMaisValeMaisAumento() * 12;
    }

    void mostra() {

        System.out.println("===========================================================");
        System.out.println();
        System.out.println("*********************************************************");
        System.out.println(" MOSTRANDO TODAS AS INFORMAÇÕES DE TODOS OS FUNCIONARIOS ");
        System.out.println("*********************************************************");
        System.out.println();

        for(int i = 0; i < this.funcionarios.length; i++) {

            Funcionario funcionario = this.funcionarios[i];

                if(funcionario == null) continue;

        System.out.println("Nome do Funcionario: " + funcionario.nome);
        System.out.println();
        System.out.println("Sua Função é: " + funcionario.funcao);
        System.out.println();
        System.out.println("Tem um salario de: " + funcionario.salario);
        System.out.println();
        System.out.println("Teve um aumento de: " + funcionario.aumento);
        System.out.println();
        System.out.println("Seu vale refeição tem valor de: " + funcionario.vale);
        System.out.println();
        System.out.println("Seu salario mais o aumento ficou: " + funcionario.salarioMaisAumento());
        System.out.println();
        System.out.println("Seu salario mais aumento e vale ficou: " + funcionario.salarioMaisValeMaisAumento());
        System.out.println();
        System.out.println("Com isso passou a ganhar por ano: " + funcionario.ganhoTotalPorAno());
        System.out.println();
        System.out.println("Sua data de contratação foi: " + funcionario.dataDeEntrada.getFormatada);
        System.out.println();
        System.out.println("===========================================================");

        }
    }
}

Boa Denis!!

Desculpa a demora. Fiquei sem acessar a plataforma por problemas pessoais! Mais ajudou muito Denis Ricci. Bom dia!