Na verdade estou até refazendo o curso terminado, porque fiquei com dificuldade com esses arrays de objeto. Olha esse código:
class Empresa{
Funcionario[] funcionario;
String rs;
String cnpj;
int proximo=0;
void criaFunc(){
for(int i=0;i<funcionario.length;i++){
funcionario[i] = new Funcionario();
}
}
void adiciona(Funcionario f){
this.funcionario[this.proximo]=new Funcionario();
this.funcionario[this.proximo]=f;
this.proximo++;
}
void mostra(){
for(int i=0;i<funcionario.length;i++){
if(this.funcionario[i]==null) continue;
System.out.println("Funcionario "+(i+1)+"\nNome: "+funcionario[i].nome+"\nCPF: "+funcionario[i].CPF);
}
}
}
class Funcionario{
String nome;
String CPF;
String data;
}
class BancoTri{
public static void main(String[] args){
Empresa escola = new Empresa();
escola.funcionario = new Funcionario[10];
//escola.criaFunc();
Funcionario empregado = new Funcionario();
empregado.nome = "Marcelo";
empregado.CPF = "486611";
escola.adiciona(empregado);
empregado.nome = "Thiago";
empregado.CPF = "4616168";
escola.adiciona(empregado);
escola.mostra();
System.out.println(escola.funcionario[0].nome);
System.out.println(escola.funcionario[1].nome);
}
}
Da pra ver que não consigo ir adicionando funcionarios, como Thiago e depois marcelo, posto que o ultimo funcionario a ser adicionado ocupa a posição de todos os indices até então.
Seria pq estou mechendo no mesmo endereço de memória? O array pega a referencia do funcionario solto, né? Não cria uma cópia.