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?
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?
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());
}
}
Quando você for criar a empresa :
new Empresa(qtd);
Onde a qtd é um int.
Abraços
Valeu, ajudou muito! ;)