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

Dificuldade no Ex. 2 da aula 6

class Funcionario{

     private String nome;
     String departamento;
     private double salario;
     Data dataCadastroBanco;
     String rg;

     //public Funcionario(){

    // }

     public Funcionario(String nome){

         this.nome = nome;
     }

    void recebeAumento(double aumento){

        this.salario += aumento;
    }

    double calculoGanhoAnual (){
        //double ganho = this.salario * 12;
        //this.salario = ganho;
        return this.salario * 12; 
    }

    void mostra(){

        System.out.println("nome: " +this.nome);
        System.out.println("departamento: "+this.departamento);
        System.out.println("salario: "+this.salario);        
        System.out.println("rg: "+this.rg);
        System.out.println("dataCadastroBanco: "+this.dataCadastroBanco.getformatada());
    }

    public void setSalario(double novosalario){

         this.salario = novosalario;
    }

    public void setNome(String novoNome){

        this.nome = novoNome;
    }
/*
    public Data getDataEntrada(){
        return this.dataEntrada;
    }

    public Data setDataEntrada(Data data
    }
*/    
}

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;
/*private*/ Funcionario [] empregados;
    int livre =0;



    //public Empresa (Funcionario[] empregados){


    //}
//novo metodo
    void adicionar(Funcionario f){

        this.empregados[this.livre] = f;
        this.livre++;
    }

    void MostrEmpregados(){

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

            System.out.println("Funcionario na posicao: "+i);

        }

    }

    void mostraTodasAsInformacoes(){

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

            System.out.println("Funcionario na posicao: "+ 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;

    }

//    public Funcionario getFuncionario (int posicao){

//        return this.empregados[posicao];
//    }
}



class TestaEmpresa{

    public static void main(String[] args){

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

            Funcionario f1 = new Funcionario("Reginaldo");
            /*


            f1.dataCadastroBanco.preencheData (1,1,1);

            */
                f1.dataCadastroBanco = new Data();
                f1.dataCadastroBanco.preencheData (1,1,1);
                f1.setSalario(1700);
                //f1.setNome ( "reginaldo");
                f1.departamento = "TI";
                f1.rg = "1231585";

                empresa.adicionar(f1);
                empresa.empregados[0].mostra();
                empresa.MostrEmpregados();
                //empresa.mostraTodasAsInformacoes();
                empresa.contem(f1);
        }



}
/*
class novoFuncionario{

    public static void main(String[] args){

        Funcionario contratado1 = new Funcionario();
            contratado1.nome = "Reginaldo";
            contratado1.departamento = "TI";
            contratado1.getSalario ();
            contratado1.rg = "1213412";

            contratado1.dataCadastroBanco = new Data();
            contratado1.dataCadastroBanco.preencheData (12,12,12);

            contratado1.mostra();
            contratado1.recebeAumento(1000);
            System.out.println("Seu salario com aumento ficou : "+contratado1.getSalario());
            //contratado.calculoGanhoAnual();
            System.out.println("Seu ganho anueal e de : "+contratado1.calculoGanhoAnual());

        Funcionario contratado2 = new Funcionario();

            contratado2.nome = "maria";
            contratado2.getSalario ();


        /*Funcionario contratado3 = new Funcionario();

            /*contratado3.nome = "maria";
            contratado3.salario = 2000;
*//*


        Funcionario contratado3 = contratado2;

            contratado3.mostra();
                //Sempre teremos como retorno, false. Pois cada um é um objeto a parte e por isso, um diferente do outro.
            if (contratado2 == contratado3){

                System.out.println("iguais");
            }else{

                System.out.println("diferentes");
            }
    }

}*/

NÃO ESTOU SABENDO COMO PASSAR O TAMANHO DO ARRAY COMO PARAMETRO. ONDE DEVO MUDAR E COMO ??

2 respostas
solução!

Você pode passar, no construtor de Empresa, um int como o tamanho do array de Funcionario e criá-lo lá dentro da classe Empresa.

Exemplo:

class Empresa{

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

   public Empresa (int numeroDeEmpregados){
    this.empregados = new Funcionario[numeroDeEmpregados];
    }

   //restante do código...
}

Lá na classe que tem o main, você precisa definir o tamanho ao criar a empresa:

class TestaEmpresa{

    public static void main(String[] args){
        Empresa empresa = new Empresa(10);

       //restante do código...
  }
}

Eu ainda estou com muita dificuldade pra linkar isso tudo na minha cabeça. Hahah, eu sei que com o tempo eu consigo pegar o jeito. Obrigadoo Alexandre!