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

Array

class Empresa {
  Funcionario[] empregados;
  String nome;
  String cnpj;
  String telefone;
  String email;
  int proximo = 0;

  void adiciona(Funcionario empregado) {
    this.empregados[this.proximo] = empregado;
    this.proximo++;
  }
  void mostraEmpregados() { 
    for (int i = 0; i < this.empregados.length ; i++) {
      System.out.println("Funcionário na posição: " + i);
      System.out.println("Nome : " + this.empregados[i].nome);
      System.out.println("Salário : R$ " + this.empregados[i].salario);
    }
  }
}

Por que "this.empregados.length" não funciona e eu tenho de utilizar o "this.proximo"

4 respostas
solução!

Laercio, Bom dia !

para poder funcionar o this.empregados.length é preciso iniciar a variavel empregados , no seu código não está incializando a variável

em algum momento , terá que ter o sseguinte trecho :

empregados = new Funcionario[5];

já sobre o this.proximo , mostra que é o atributo proximo da classe funcionario .

nada impediria colocar o proximo sem o this.

espero ter ajudado , Bons estudos

Você então quer me dizer que o "this.empregados[i] " não e o mesmo que "this.empregados.length", são variáveis diferentes

sim , são diferentes !

quando fazemos this.empregados.length , estamos dizendo para percorrer todas as posições do array . por exemplo se o array tem 10 posições

quando fazemos i < this.empregados.length , seria a mesma coisa de i < 10 e o for ficara faça enquanto i for menor que 10

no caso de empregados[i] é o empregado da posição que vale i , por exemplo :

se i = 0

this.empregado[0] , ele irá pegar somente o empregado da posição 0 do array .

conseguiu entender a diferença .

espero ter ajudado

Ok, muito obrigado