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

Exercício 3 do Capítulo Modificadores de Acesso

Pessoal,

não sei aonde estou errando. Fiz as alterações pedidas pelo execício porém ficou aparecendo o seguinte erro:

Funcionario.java:139: error: constructor Funcionario in class Funcionario cannot
 be applied to given types;
        Funcionario f1 = new Funcionario("Hugo");
                         ^
  required: no arguments
  found: String
  reason: actual and formal argument lists differ in length
Funcionario.java:144: error: constructor Data in class Data cannot be applied to
 given types;
        f1.setDataEntrada (new Data( 6,9,2003));
                           ^
  required: no arguments
  found: int,int,int
  reason: actual and formal argument lists differ in length
2 errors

Alguma luz para abri minha mente??? rsrs

7 respostas

Olavo, poste por favor o seu código aqui para ser mais fácil identificar o problema!

Blz!!! Segue o código:

public class Funcionario{
    private String nome;
    private String departamento;
    private double salario;
    private Data dataEntrada;
    private String rg;

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

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

    public String getNome(){
        return this.nome;
    }

    public void setNome (String nome){
        this.nome = nome;    

    }

    public String getDepartamento(){
        return this.departamento;
    }

    public void setDepartamento(String departamento){
        this.departamento = departamento;
    }

    public Double getSalario(){
        return this.salario;
    }

    public void setSalario(Double salario){
        this.salario = salario;
    }

    public Data getEntrada(){
        return this.dataEntrada;
    }

    public void setDataEntrada(Data dataEntrada){
        this.dataEntrada = dataEntrada;
    }

    public String getRg (){
        return this.rg;
    }

    public void setRg(String rg){
        this.rg = rg;
    }


    public void mostra(){

        System.out.println("Salario atual: "+this.salario);
//        System.out.println("Salario anual: "+this.getGanhoAnual());
//        System.out.println("Data de entrada: "+this.dataEntrada.getFormatada());
    }



}


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 Empresa{
    String nome;
    String cnpj;
    Funcionario[]empregados;
    int livre = 0;

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


//    void mostraEmpregados(){
//        for (int i =0;i<this.livre;i++){
//            System.out.println("Funcionário na posição: "+i);
//            System.out.println("R$: "+this.empregados[i].getSalario);
//        }
//    }


    void mostraTodasAsInformacoes(){
        for (int i = 0; i<this.livre;i++){
            System.out.println("Funcionario na posição: "+i);
            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;


        }


}


class testaFuncionario{
    public static void main (String[]args){

    Funcionario f1 = new Funcionario("Hugo");

    f1.setSalario (100.0);
    f1.aumento (50.0);

    f1.setDataEntrada (new Data( 6,9,2003));

    f1.mostra();

    } 


}


class testaEmpresa{
//    public static void main(String[]args){
//        Empresa empresa = new Empresa();
//        empresa.empregados = new Funcionario[10];

//        Funcionario f1 = new Funcionario();
//        f1.salario = 1000.0;
//        empresa.adiciona (f1);


//        empresa.empregados[0].mostra();
//        empresa.empregados[1].mostra();

//        for (int i=0;i <5;i++){
//            Funcionario f = new Funcionario();
//            f.salario = 1000 +i *100;
//            empresa.adiciona(f); 
//        }

//        empresa.mostraTodasAsInformacoes();

//        empresa.mostraEmpregados();                


//    }


}
solução!

Faltou criar os construtores das classes Funcionario e Data

public Funcionario(String nome) { this.nome = nome; }

faça o mesmo para a classe Data, passando o dia, mes e ano e atribuindo-os aos atributos correspondentes.

Creio que você poderia fazer desta forma também:

Funcionario f1 = new Funcionario();

f1.setnome("Hugo");

Fiz da forma que Fábio falou para Funcionário e deu certo! Porém não estou conseguindo fazer para a data.

O construtor seria dessa forma?

public Data (String dataEntrada){
        this.dataEntrada = dataEntrada;
    }

Resolvido:

Criei dentro da class Funcionario

public void setData(Data dataEntrada){
            this.dataEntrada = dataEntrada;
        }

    public Data getDataEntrada(){
               return dataEntrada;
        }

e depois dentro dentro da class Data:

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

    public Data (int dia, int mes, int ano){
        this.dia = dia;
        this.mes = mes;
        this.ano = ano;
    }

    String getFormatada(){
        return this.dia+"/"+this.mes+"/"+this.ano;
    }


}

Valeu pessoal!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software