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

Erro

class Empresa {

    String nome;
    int cpnj;
    Funcionario[] funcionario;
}




class Funcionario {
    String nome;
    String departamento;
    double salario;
    Data dataDeEntrada;
    String rg;

    void recebeAumento(double valor) {
        this.salario += valor;
    }

    double calculoGanhaAnual() {
        return this.salario * 12;
    }


    void mostra() {
         System.out.println("Data de entrada: " + this.dataDeEntrada.getFormatada());

    }
}
class ProgramaEmpresa{
    public static void main(String[] args){
        Empresa e1 = new Empresa();
        e1.funcionario = new Funcionario[10];

        e1.funcionario[0] = new Funcionario();
        e1.funcionario[0].nome    = "Livia";
        e1.funcionario[0].departamento  = "Programador Junior";
        e1.funcionario[0].salario = 1500.0;

        e1.funcionario[1] = new Funcionario();
        e1.funcionario[1].nome    = "Ana";
        e1.funcionario[1].departamento    = "Gestao";
        e1.funcionario[1].salario = 6000.0;

        e1.funcionario[0].mostraFuncionario();
        e1.funcionario[1].mostraFuncionario();

    }
}
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 TesteFuncionario {

    public static void main (String[] args) {
        Funcionario f1 = new Funcionario();

        f1.nome = "Hugo";
        f1.salario = 1000;
        f1.recebeAumento(50);
        f1.rg = "123456789";
        f1.departamento = "Vendas";
        f1.dataDeEntrada = new Data();
        f1.dataDeEntrada.preencheData(20, 03, 1950);
        f1.mostra();
    }
}
8 respostas

Olá Livia, boa noite tudo bem?

Livia pelo que eu vi, está faltando você criar o método "mostraFuncionario" acredito eu na classe Funcionario

Obrigado,

Oi Lívia,

parece que foi isso mesmo que o Thiago reportou.

Nessas linhas estamos chamando um método que não foi definido dentro da classe Funcionario.

e1.funcionario[0].mostraFuncionario();
e1.funcionario[1].mostraFuncionario();

Acredito que tenha dado um erro como MethodNotFoundException.

Fica dica: sempre que der algum erro, posta ele junto da dúvida que fica mais fácil de identificar o problema ;)

Abraços & bons estudos!

Não deu mais erro. Porém quando coloco para rodar no compilador java ProgramaEmpresa não aparece nada

Pode postar o código?

Obrigado

posta pra gente de novo como ficou a última versão do código?

class Empresa {

    String nome;
    int cpnj;
    Funcionario[] funcionario;
}




class Funcionario {
    String nome;
    String departamento;
    double salario;
    Data dataDeEntrada;
    String rg;

    void mostraFuncionario() {
}

    void recebeAumento(double valor) {
        this.salario += valor;
    }

    double calculoGanhaAnual() {
        return this.salario * 12;
    }


    void mostra() {
         System.out.println("Data de entrada: " + this.dataDeEntrada.getFormatada());

    }
}
class ProgramaEmpresa{
    public static void main(String[] args){
        Empresa e1 = new Empresa();
        e1.funcionario = new Funcionario[10];

        e1.funcionario[0] = new Funcionario();
        e1.funcionario[0].nome    = "Livia";
        e1.funcionario[0].departamento  = "Programador Junior";
        e1.funcionario[0].salario = 1500.0;

        e1.funcionario[1] = new Funcionario();
        e1.funcionario[1].nome    = "Ana";
        e1.funcionario[1].departamento    = "Gestao";
        e1.funcionario[1].salario = 6000.0;

        e1.funcionario[0].mostraFuncionario();
        e1.funcionario[1].mostraFuncionario();

    }
}
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 TesteFuncionario {

    public static void main (String[] args) {
        Funcionario f1 = new Funcionario();

        f1.nome = "Hugo";
        f1.salario = 1000;
        f1.recebeAumento(50);
        f1.rg = "123456789";
        f1.departamento = "Vendas";
        f1.dataDeEntrada = new Data();
        f1.dataDeEntrada.preencheData(20, 03, 1950);
        f1.mostra();
    }
}

Oi Lívia,

Ficou faltando apenas você dar comportamento ou melhor implementar o seu método mostraFuncionário, pode ser um sysout como exemplo

Abraço e bons estudos

solução!

Tente colocar um sysout para que seu método possa imprimir por exemplo o nome do funcionário.

;)