Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Dúvida no Ex. 2 da Aula 4 - Arrays

NÃO ENTENDI ESSA PARTE!

QUANDO EU CHAMO A FUNÇÃO NO MAIN O QUE EU TENHO QUE PASSAR PRA ELA ? POR FAVOR COLOQUE UM EXEMPLO. E A FUNÇÃO TEM QUE ESTAR DENTRO DE ALGUM LOOP , PARA QUE AJA O INCREMENTO DA VARIAVEL POSICAO ?

void Adiciona(Funcionario funci) {

int pocicao = 0;

funcionario = new Funcionario[10]; funci = funcionario[pocicao]; pocicao++;

}

5 respostas
class Empresa {

    String nomeEmpresa;
    String cnpj;
    FuncionarioArray[] funcionarios;
    int posicaoLivre = 0;

    void adiciona (FuncionarioArray adicionaFuncionario) {
        this.funcionarios[this.posicaoLivre] = adicionaFuncionario;
        this.posicaoLivre++;
    }

Testa Empresa

public static void main(String[] args) {

        // Criando referências para os objetos..
        Empresa empresa = new Empresa();
        empresa.empregados = new Funcionario[6];

        // Criando funcionários dentro de um loop e atribuir valores diferentes.
        for(int i = 0; i < 5; i++){
            Funcionario f = new Funcionario();
            f.setSalario(1000.0 + (i * 100));
            empresa.adiciona(f);
        }

        empresa.mostraEmpregados();



    }

A classe e os métodos são simples de enteder, veja bem:

    int posicaoLivre = 0;

    void adiciona (FuncionarioArray adicionaFuncionario) {
        this.funcionarios[this.posicaoLivre] = adicionaFuncionario;
        this.posicaoLivre++;
    }

Neste método você vai receber qualquer funcionario do Tipo funcionarioArray, ou de um tipo que seja um objeto array, e na medida que você for recebendo ele vai começar armazenar na posição 0 e no this.posicaoLivre++ ele vai incrementar, ou seja, no próximo funcionário ele vai receber a posição 1 e não mais 0.

// Criando funcionários dentro de um loop e atribuir valores diferentes.
        for(int i = 0; i < 5; i++){
            Funcionario f = new Funcionario();
            f.setSalario(1000.0 + (i * 100));
            empresa.adiciona(f);
        }

Na classe de teste, você cria um lopping só para testar e não ficar adicionando um por um. Veja que ele passa o argumento nessa linha: empresa.adiciona(f);

Entendido? Espero que sim! Bons estudos e abraços.

muito bom , depois de um tempo eu entendi

Que bom! Fico feliz. Por favor, só feche o tópico marcando uma resposta como solução! Obrigado.

Mano que legal tinha acabado de postar que tinha ficado com dúvidas nos arrays, mais entendi melhor agora, vou tentar fazer o exercício de novo. é isso Felipe Portela valeu pela dica.

solução!

De nada amigo, bons estudos!