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

Array

Estou tentando concluir o capitulo sobre Arrays, mas to sentindo uma certa dificuldade. E o problema eh que se fico com duvida em algum exercicio, nem da pra ir pra frente, pq sao todos continuacao um do outro. No capitulo sobre arrays (4 de primeiros passos com java), fiquei com duvida no exercicio 2 e nao consegui fazer o 3, consequentemente nao consigo fazer mais nenhum.

2 respostas

Oi Leonardo,

Qual foi a dúvida que você ficou?

Abraço!

solução!

Olá Leonardo, tudo bem!?

Um array em java é um objeto. Sendo assim, ele possui métodos e atributos. No primeiro exercício de arrays, é pedido para criar um array de funcionários na classe empresa, correto?

Antes de pensar nisso, imagine como você criaria um Array de inteiros! Veja se não seria algo do tipo:

new int[10]; 
/*
   Aqui, eu criei um objeto array em memória.
   Isto significa que eu possuo um espaço na HEAP para guardar dez números inteiros indexáveis. O primeiro índice é 0 e o último 9.
   Porém, como acessá-los? Eu preciso de uma referência para arrays de inteiros. Ou seja, de uma variável que "aponte" para meu array em memória. Sendo assim, poderíamos ter algo do tipo:
*/

int[] numeros = new int[10];

/*
   Agora, o que fiz foi dizer ao java que eu vou armazenar uma referência(o endereço) de um vetor de inteiros de 10 posições(new int[10]) numa variável de referência para vetor de inteiros(int[]) chamada numeros.
   Assim, podemos acessar o vetor através da variável 'numeros'.
  Podemos fazer numeros[0] = 2 ou System.out.println(numeros[0]) //que vai imprimir 2, certo?

  Através da nossa referência numeros, acessamos um objeto em memória array de dez posições de inteiros nesse exemplo.
*/

Imagina agora a sua classe Funcionario com seus atributos: nome, matricula, dataAdmissao... Algo do tipo:

class Funcionario{
    String nome;
    int matricula;
    String dataAdmissao
}

Beleza?

E a classe Empresa? Ela tem um nome, um cnpj e funcionários, certo?

Acho que o exercício propõe criar a classe empresa com um atributo funcionarios. Os funcionarios são um conjunto(array) de funcionario. Não são um conjunto de inteiros, correto? Logo, o que acha do trecho abaixo:

class Empresa{
    String nome;
    String cnpj;
    Funcionario[] funcionarios; // parecido com int[] numeros?
}

Então, o que a classe Empresa expressa é que ela tem uma referência chamada funcionarios para um array do "tipo" Funcionario.

class TestaEmpresa{
    // Criação de um funcionário de exemplo com o atributo nome:
    Funcionario f = new Funcionario();
    f.nome = "Leonardo";

    // Criação de uma empresa de exemplo:
    emprea = new Empresa();
    empresa.nome = "XPTO"
    empresa.cnpj = "35.757.354/0001-60"

    /*
        Abaixo, estamos criando um vetor do tipo Funcionario que pode armazenar 5 referências de Funcionario. Além disso, eu guardei a referência desse vetor de funcionarios no atributo empresa.funcionarios.
        Quando criei um funcionario acima, eu guardei a referência dele em 'f', correto?
    */
    empresa.funcionarios = new Funcionario[5];

    /*
        Agora, podemos fazer:    
    */

    empresa.funcionarios[0] = f
    System.out.println(empresa.funcionarios[0].nome) //Leonardo




}

Espero ter ajudado e não complicado ainda mais! De qualquer forma, se ainda tiver dúvidas, continue mandando para o fórum!!

Abs.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software