Não entendi a solução deste exercício, não entendi a lógica, não fez sentido. por favor, tem como explicar linha por linha ?
Não entendi a solução deste exercício, não entendi a lógica, não fez sentido. por favor, tem como explicar linha por linha ?
class Empresa {
Funcionario[] empregados;
String cnpj;
int livre = 0;
void adiciona(Funcionario f) {
this.empregados[this.livre] = f;
this.livre++;
}
}
A resposta ficaria da seguinte maneira. Temos a nossa classe empresa com seu Array empregados,uma String cnpj e um inteiro livre com seu atributo sendo 0. Até aí tudo bem? Logo em seguida temos um método adiciona(com o parâmetro Funcionario f) Vamos pegar o this.empregados com a nossa variável livre(que é 0 -> primeiro elemento) e atribuí-la a variável f. Em seguida incrementamos o livre,para sempre irmos adicionando os funcionários.
Não sei bem se deu pra você entender,não sei explicar muito bem,pelo menos tentei. Qualquer dúvida que persistir um dos moderadores pode esclarecer mais facilmente
Vamos la Fabio, primeiramente vamos falar sobre os atributos da classe:
class Empresa {
Funcionario[] empregados;
String cnpj;
int livre = 0;
}
Aqui temos três atributos:
Funcionario[] empregados: Seria um array do tipo funcionario, por tanto, se quisermos adicionar uma String ou Integer não será possivel, iremos apenas conseguir adicionar instâncias da classe Funcionario(epregados[0] = new Funcinario();
)
String cnpj: Atributo do tipo String para guardar nosso CNPJ, acredito que aqui não tem segredo.
int livre = 0: Atributo do tipo int para sabermos qual posição do array esta livre, acredito não ter segredos também.
Vamos ao método da classe:
class Empresa {
// atributos
void adiciona(Funcionario f) {
this.empregados[this.livre] = f;
this.livre++;
}
}
O método adiciona recebe como parâmetro um funcionario(Uma instância da classe funcionario, ou seja, um objeto do tipo funcionário), feito isso ele pega a posição livre do array e adiciona o funcionario, vamos a um teste de mesa:
Funcionario f1 = new Funcionario();
Funcionario f2 = new Funcionario();
Funcionario f3 = new Funcionario();
livre = 0;
// adicionando primeiro usuario
// vai pegar o array na posicao livre - empregados[livre] ou seja empregados[0] e adicionar o funcionario f1
adiciona(f1);
// apois adicionar ira incrementar a posicao livre
livre = 1;
// adicionando primeiro usuario
// vai pegar o array na posicao livre - empregados[livre] ou seja empregados[1] e adicionar o funcionario f2
adiciona(f2);
// apois adicionar ira incrementar a posicao livre
livre = 2;
// adicionando primeiro usuario
// vai pegar o array na posicao livre - empregados[livre] ou seja empregados[2] e adicionar o funcionario f3
adiciona(f3);
// apois adicionar ira incrementar a posicao livre
livre = 3;
Espero ter ajudado.
public class Empresa{
private String nome;
private String cnpj;
private Funcionario[] funcionario;
private int contador = 0;
public void adcionar(Funcionario f){
this.funcionario[contador] = f;
contador++;
}
}