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

Aula 6 (Construtores) - Exercício 2

Exercício pede: - Na classe Empresa, em vez de criar um array de tamanho fixo, receba como parâmetro no construtor o tamanho do array de Funcionario.

Como fazer o contrutor receber como parâmetro o tamanho do array Funcionário?

4 respostas

Olá Virgilio, tudo bem ?

Hoje você tem isso :

public Empresa(){
    this.funcionarios = new Funcionario[10];
}

Agora ele quer que você não precise mais deixar esse valor (10) fixo, precisa ser algo dinâmico, nisso você precisa receber a quantidade de funcionarios :

public Empresa(int qtdFuncionarios){
    this.funcionarios = new Funcionario[qtdFuncionarios];
}

Espero ter ajudado.

Abraços

Olá Matheus ,

Ajudou muito, obrigado. Só mais uma questão, qual o jeito certo de passar o argumento quando instanciar uma nova empresa?

Obs.: Meu código abaixo.

===================================

class Empresa {

    private String nome;

    private String cnpj;

    private Funcionario[] empregados;

    private int livre = 0;

    public Empresa(int qtdEmpregados)

{

        this.empregados = new 

Funcionario[qtdEmpregados];

    }

    public String getNome() 

{
        return this.nome;

    }

    public void setNome(String nome) 

{
        this.nome = nome;

    }

    public String getCnpj() 

{
        return this.cnpj;
    }

    public void setCnpj(String cnpj) 

{

        this.cnpj = cnpj;


    }

    public Funcionario getFuncionario(int posicao)

 {

        return this.empregados[posicao];

    }

    public void adicionar(Funcionario f)

 {

        this.empregados[this.livre] = f;

        this.livre++;

    }

    public void mostraTodasAsInformacoes() 

{

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

{

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

            this.empregados[i].mostra();

        }

    }

    public boolean contem(Funcionario f)

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

{
            if (f == this.empregados[i]) 

{
                return true;

            }

        }

        return false;

    }

}

====================================

class TestaEmpresa 

{

    public static void main (String[] args)

 {


    Empresa empresa = new Empresa(); //preciso passar aqui o argumento, para poder validar "empresa" codigo abaixo e adicionar os funcionarios ao meu array.

        Funcionario f1 = new Funcionario();
        f1.setSalario(1000);
        f1.dataEntrada = new Data();
        empresa.adicionar(f1);

        Funcionario f2 = new Funcionario();
        f2.setSalario(1700);
        f2.dataEntrada = new Data();
        empresa.adicionar(f2);

        empresa.mostraTodasAsInformacoes();

    }

}

=====================================

class Funcionario 


{

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

    public Funcionario() 

{
    }

    public Funcionario(String nome) 

{
        this.nome = nome;

    }

    public String getNome() 

{
        return this.nome;
    }

    public void setNome(String nome) 

{
        this.nome = nome;

    }

    public void recebeAumento(double valorAumentoSalario) 

{

        this.salario += valorAumentoSalario;

    }

    public double getSalario() 

{
        return this.salario;

    }

    public void setSalario(double salario) 

{
        this.salario = salario;

    }

    public double calculaGanhoAnual() 

{
        return this.salario * 12;

    }

    public double getCalculaGanhoAnual() 

{
        return this.calculaGanhoAnual();

    }

    public void mostra() 

{
        System.out.println("Nome: " + getNome());
        System.out.println("RG: " + this.rg);
        System.out.println("Departamento: " + this.departamento);
        System.out.println("Data de Entrada: " + this.dataEntrada.getFormatada());
        System.out.println("Salario: R$ " + getSalario());
        System.out.println("Ganho anual: R$ " + this.calculaGanhoAnual());


    }

}
solução!

Quando você for criar a empresa :

new Empresa(qtd);

Onde a qtd é um int.

Abraços

Valeu, ajudou muito! ;)