Boa noite pessoal, estou eu novamente solicitando a ajuda de vós “miceis”. Ja tentei de várias formas passar a minha instancia empregados para o método adicionaFuncionario() {}
mas sempre ocorre um erro. O que estou fazendo de errado novamente ??
[code]public class Funcionario {
String nome;
String RG;
Data dataEntrada;
double salario;
boolean estaNaEmpresa;
}[/code]
[code]public class Empresa {
String cnpj;
String nome;
Funcionario[] empregados;
int i = 0;
Você quer adicionar 1 funcionário ou um monte de funcionários? E que adicionaFuncionario adiciona apenas 1 funcionário (porque recebe um objeto da classe Funcionario, não um array de Funcionario).
Note que o Java não é esperto suficiente para chamar o adicionarFuncionario para cada elemento do array de funcionários; você é que tem de criar um “for” e adicionar um por um .
Olha cara, é mais facil tu usar um Vector de funcionarios, a não ser que você tenha somente um numero x de funcionarios, e como o amigo falou ai, tu não precisa passar como parametro um array de funcionarios, para inserir tu deve passar como paremetro um funcionario
exemplo com array:
public void insere(Funcionario f){
empregados[i] = f;
i++;
}
exemplo com Vector
public void insert(Funcionario f){
empregados.add(f);
}
// pra adicionar:
void addFuncionario(Funcionario funcionario){
// verifica se a lista foi instanciada ja
if (funcionarios == null) funcionarios = new ArrayList();
// adiciona o funcionario
empregados.add(funcionario);
}[/code]
O problema do array é que voce ainda precisa passar o tamanho dele, não há como inserir dinamicamente, por isso usamos List, que trata isso pra gente… sacou?
public static void main(String[] args) {
Empresa empresa1 = new Empresa();
Funcionario f1 = new Funcionario();
Funcionario f2 = new Funcionario();
f1.nome="rat000";
f2.nome="guj";
empresa1.adicionaFuncionario(f1); // Assim não da mais erro, do jeito que vc fez.
empresa1.adicionaFuncionario(f2);
for(int i = 0; i < 2; i++){
System.out.println(empresa1.empregados[i].nome);
}
}