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

Dúvida no Ex. 6 da Aula 4 - Arrays

Pessoal, o meu código não está retornando nem TRUE e nem FALSE. Podem me dar um força?

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

    void mostra (){
        System.out.println("Nome Funcionario: " + this.nome);
        System.out.println("Salario Atual: " + this.salario);
        System.out.println("Ganho Anual: " + this.calculaGanhoAnual());
        System.out.println("Data Contratacao: " + this.dataDeEntrada.getFormatada());
        System.out.println("");
    }

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

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


class Empresa{
    String nome;
    String cnpj;
    Funcionario[] empregados;
    int livre = 0;

    void adiciona(Funcionario f){
        this.empregados[this.livre] =f;
        this.livre++;
    }

    void mostrarEmpregados(){
        for(int i = 0; i < this.livre; i++){

            System.out.println("");
            System.out.println("Funcionario na Posicao: " + i);
            System.out.println("R$" + this.empregados[i].salario);
            System.out.println("");
        }
    }

    void mostrarTodasAsInformacoes(){
        for(int i = 0; i < this.livre; i++){
            System.out.println("");
            System.out.println("Funcionario na Posicao: " + i);
            this.empregados[i].mostra();
            System.out.println("");

        }
    }

    boolean contem(Funcionario f){
        for(int i = 0; i < this.livre; i++){
            if(f == this.empregados[i]){
                return true;
            }
        }
                return false;
    }
}




    class Data{
    int dia;
    int mes;
    int ano;

    void preencherData (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 TestaEmpresa{
    public static void main(String[] args){

        Empresa empresa = new Empresa();
        Empresa empresaDois = new Empresa();
        empresa.empregados = new Funcionario[10];

        Funcionario f1 = new Funcionario();
        f1.nome = "Diogo Vilela";
        f1.departamento = "Tecnologia";
        f1.salario = 3000;
        f1.dataDeEntrada = new Data();
        f1.dataDeEntrada.preencherData(12, 02, 2016);
        f1.rg = "54678059";
        empresa.adiciona(f1);

        Funcionario f2 = new Funcionario();
        f2.nome = "Marcella Souza";
        f2.departamento = "Pedagoga";
        f2.salario = 4000;
        f2.dataDeEntrada = new Data();
        f2.dataDeEntrada.preencherData(12, 02, 2016);
        f2.rg = "54657059";
        empresa.adiciona(f2);

        empresa.mostrarEmpregados();
        empresa.mostrarTodasAsInformacoes();


    }


}
4 respostas

Diogo, Bom dia !

Pelo que eu vi em seu código! Em nenhum momento vc chama o método contem ! Por isso não retorna o valor do boolean ! E necessario adicionar a chamada dos método ou no mostra ou no mostraTodasAsInformaçoes

Diogo, conseguiu resolver o problema?

O erro ainda continua. Não aparece a informação.

solução!

Bom dia Diogo,

na classe TestaEmpresa você tem que chamar o metodo contem() que está declarada na classe Empresa, algo assim:

class TestaEmpresa{
    public static void main(String[] args){
    //restante do codigo
    boolean funcionarioExistente = empresa.contem(f1);
        System.out.println(funcionarioExistente);
    }
}