Boa noite para todos!
Estou com uma dúvida que provavelmente é um erro de lógica e não estou conseguindo solucionar.
O código abaixo está rodando certinho, porém o meu método adiciona da classe empresa, aparentemente está buscando apenas as informações dos funcionários da posição 0 (mesmo eu colocando duas posições na memória dentro do main). Existe algum erro dentro do método adiciona ou em algum outro método? Por que será que não estou conseguindo mostrar mais de uma posição na memória?
Só para entenderem melhor, sempre que crio um funcionário, ele acaba aparecendo 10 vezes, ao invés de mostrar o funcionário 0 e 1.
Se alguém puder me ajudar, vou agradecer demais. Estou quebrando a cabeça com isso hahaha.
class Funcionario{
String nome;
String depto;
String rg;
int matricula;
double sal;
Data admissao;
void recebeAumento(double valorAumento){
this.sal += valorAumento;
}
void calculoGanhoAnual(){
this.sal = sal * 12;
}
void mostra() {
System.out.println("Matricula: " + this.matricula);
System.out.println("Nome: " + this.nome);
System.out.println("Data de admissao: " + this.admissao.getData());
System.out.println("RG: " + this.rg);
System.out.println("Departamento: " + this.depto);
System.out.println("Salario: " + this.sal);
}
}
class Data{
int dia, mes, ano;
void preencheData(int dia, int mes, int ano){
this.dia = dia;
this.ano = ano;
this.mes = mes;
}
String getData(){
return this.dia + "/" + this.mes + "/" + this.ano;
}
}
class Empresa{
String nome, cnpj;
Funcionario[] vetorFunc;
void adiciona(Funcionario f){
for(int i = 0; i < vetorFunc.length; i++){
this.vetorFunc[i] = f;
}
}
void mostraFunc(){
for(int i = 0; i < this.vetorFunc.length; i++){
System.out.println("Funcionario na posiçao " + (i+1));
System.out.println("Salario " + this.vetorFunc[i].sal);
System.out.println("Nome " + this.vetorFunc[i].nome);
}
}
void mostraInfo() {
for (int i = 0; i < this.vetorFunc.length; i++) {
System.out.println("Funcionario na posição: " + i);
this.vetorFunc[i].mostra();
}
}
boolean contem(Funcionario func){
for(int i = 0; i < this.vetorFunc.length; i++){
if(func == this.vetorFunc[i]){
return true;
}
}
return false;
}
}
class TestaFunc{
public static void main(String[] args){
Funcionario thiago = new Funcionario();
thiago.nome = "Thiago Alexandre Ferrari";
thiago.sal = 1796;
thiago.matricula = 9325629;
thiago.depto = "Tecnologia";
thiago.rg = "491962344";
thiago.admissao = new Data();
thiago.admissao.dia = 04;
thiago.admissao.mes = 02;
thiago.admissao.ano = 2014;
thiago.mostra();
}
}
class TestaEmpresa{
public static void main(String[] args){
Empresa ibm = new Empresa();
ibm.vetorFunc = new Funcionario[10];
Funcionario f1 = new Funcionario();
f1.admissao = new Data();
f1.nome = "Thiago";
f1.sal = 2000;
f1.rg = "1234569";
f1.depto = "Tecnologia";
f1.matricula = 9139180;
f1.admissao.preencheData(04,02,2015);
ibm.adiciona(f1);
Funcionario f2 = new Funcionario();
f2.admissao = new Data();
f2.nome = "Maria";
f2.sal = 22500;
f2.rg = "1212331";
f2.depto = "DPCD";
f2.matricula = 1271837;
f2.admissao.preencheData(16,05,1992);
ibm.adiciona(f2);
ibm.mostraInfo();
}
}