String cnpj;
Funcionario[] empregados;
void adiciona(Funcionario f) {
for (int i = 0; i < empregados.length; i++) {
this.empregados[i] = f;
}
}
void mostraEmpregados() {
for (int i = 0; i < this.empregados.length; i++) {
System.out.println("O empregado na posicação " + i);
System.out.println("Salario do empregado: " + empregados[i]);
}
}
}
class TestaEmpresa {
public static void main(String[] args) {
Empresa empresa = new Empresa();
empresa.empregados = new Funcionario[10];
Funcionario f1 = new Funcionario();
f1.salario = 500.0;
empresa.adiciona(f1);
Funcionario f2 = new Funcionario();
f2.salario = 600.5;
empresa.adiciona(f2);
empresa.mostraEmpregados();
}
}
[/code]
O Resultado sai:
run:
O empregado na posicação 0
Salario do empregado: javaapplication8.Funcionario@addbf1
O empregado na posicação 1
Salario do empregado: javaapplication8.Funcionario@addbf1
O empregado na posicação 2
Salario do empregado: javaapplication8.Funcionario@addbf1
O empregado na posicação 3
Salario do empregado: javaapplication8.Funcionario@addbf1
O empregado na posicação 4
Salario do empregado: javaapplication8.Funcionario@addbf1
O empregado na posicação 5
Salario do empregado: javaapplication8.Funcionario@addbf1
O empregado na posicação 6
Salario do empregado: javaapplication8.Funcionario@addbf1
O empregado na posicação 7
Salario do empregado: javaapplication8.Funcionario@addbf1
O empregado na posicação 8
Salario do empregado: javaapplication8.Funcionario@addbf1
O empregado na posicação 9
Salario do empregado: javaapplication8.Funcionario@addbf1
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)
Ao menos o primeiro e o segundo eram para aparecer os funcionarios certo?
String cnpj;
Funcionario[] empregados;
void adiciona(Funcionario f) {
int flag = 0;
for (int i = 0; flag == 0; i++) {
if (this.empregados[i] == null) {
this.empregados[i] = f;
flag = 1;
}
}
}
void mostraEmpregados() {
for (int i = 0; this.empregados[i] != null; i++) {
if (this.empregados[i] != null) {
System.out.println("O empregado na posicação " + i);
System.out.println("Salario do empregado: " + empregados[i].salario);
}
}
}
}
class TestaEmpresa {
public static void main(String[] args) {
Empresa empresa = new Empresa();
empresa.empregados = new Funcionario[10];
Funcionario f1 = new Funcionario();
f1.salario = 500.0;
empresa.adiciona(f1);
Funcionario f2 = new Funcionario();
f2.salario = 600.5;
empresa.adiciona(f2);
empresa.mostraEmpregados();
}
Muito obrigado pelos macetes. Eu ainda sou muito novato no java ^^.
Olha o que ele está pedindo:
“Você deve inserir o Funcionario em uma posição da array que esteja livre. Existem várias maneiras para
você fazer isso: guardar um contador para indicar qual a próxima posição vazia ou procurar por uma posição
vazia toda vez. O que seria mais interessante?”
Pelo que eu entendi eu devo sempre inserir o valor numa posição que esteja null. Mas da forma que você fez, quando eu for adicionar um funcionario ele não vai sobrepor os valores? Porque sempre que eu chamar metodo “adiciona” ele vai contar o loop do começo(ou não?) e no cont=0 ja tem valores. Eu devo colocar um if da mesma forma que o nosso amigo do post acima colocou, ou simplesmente com o seu código eu consigo fazer o que pede no exercício?
Desculpa a minha ignorância, mas é que eu estou aprendendo programação agora e só pela net mesmo por enquanto.