Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Exercicio 4 Arrays - Nao consegui adicionar funcionario

O exercicio pede para cadastrar o funcionario porem nao consegui imprimir o funcionario, o metodo adiciona ta errado?

class Empresa {
    String nome;
    String CNPJ;
    Funcionario[] empregados;

    void adiciona(Funcionario f) {
        for(int i = 0; i< this.empregados.length; i++){
            Funcionario empregados = this.empregados[i];
            }
    }

    void mostraEmpregados(){
        for (int i = 0; i < this.empregados.length; i++){
        if(this.empregados[i] == null) continue;
        System.out.println("FUncionario na posicao: " + i);
        System.out.println("Salario: " + this.empregados[i].salario);
        }
    }        

}

class Funcionario {

    String nome;
    double salario;

}

class TestaEmpresa {

    public static void main(String[] args){

    Empresa empresa = new Empresa();
    empresa.empregados = new Funcionario[10];

    Funcionario f1 = new Funcionario();
    f1.salario = 1000;
    f1.nome = "Marcelo";
    empresa.adiciona(f1);

    Funcionario f2 = new Funcionario();
    f2.salario = 2000;
    f2.nome = "Fabiana";
    empresa.adiciona(f2);


    Funcionario f3 = new Funcionario();
    f3.salario = 3000;
    f3.nome = "Junior";
    empresa.adiciona(f3);

    empresa.mostraEmpregados();
    }
}
1 resposta
solução!

Oi, Marcelo

Seu método adiciona realmente está com problema... Veja só: você não quer adicionar o Funcionario f que você recebe como argumento? Em algum lugar do seu método você está usando esse f?

Na hora de adicionar um Funcionario, você precisa percorrer o Array para encontrar um lugar livre para seu novo Funcionario. Então, dentro do for, você precisa verificar se a posição está livre (null) e, se estiver, colocar o Funcionario f nela e parar o for.

Deu para pegar a ideia? :)