Então pessoal, não estou conseguindo criar o get e o set da data corretamente, segue as classes que estou utilizando:
public class Principal {
public static void main(String[] args) {
Empresa empresa = new Empresa();
empresa.empregados = new Funcionario[2];
Data data_entrada = new Data();
Funcionario f = new Funcionario();
f.setSalario(1000);
f.setNome("Gabriel");
f.setRg("123344566");
f.setDept("rh");
data_entrada.preencheData(14, 4, 1999);
f.setData(data_entrada);
empresa.adiciona(f);
Funcionario f2 = new Funcionario();
f2.setSalario(1100);
f2.setNome("Melo");
f2.setRg("111111111");
f2.setDept("rh");
data_entrada.preencheData(14, 5, 1998);
f2.setData(data_entrada);
empresa.adiciona(f2);
empresa.mostraEmpregados();
}
}
public class Funcionario {
private String nome;
private String dept;
private double sal;
private Data data_entrada = new Data();
private String rg;
void recebeAumento(double val_aumento){
this.sal += val_aumento;
}
double calculaGanhoAnual(){
return this.sal*12;
}
void mostra(){
System.out.println("Nome: " + this.nome);
System.out.println("Dept: " + this.dept);
System.out.println("Salario: " + this.sal);
System.out.println("Data de entrada: " + this.getData().getFormatada());
System.out.println("RG: " + this.rg);
System.out.println("Ganho anual: R$" + this.calculaGanhoAnual());
System.out.println("-------------");
}
public double getSalario(){
return this.sal;
}
public void setSalario(double salario){
this.sal = salario;
}
public String getNome(){
return this.nome;
}
public void setNome(String name){
this.nome = name;
}
public String getDept(){
return this.dept;
}
public void setDept(String depart){
this.dept = depart;
}
public String getRg(){
return this.rg;
}
public void setRg(String Rg){
this.rg = Rg;
}
public Data getData(){
return data_entrada;
}
public void setData(Data d){
this.data_entrada = d;
}
}
public class Data {
int dia;
int mes;
int ano;
void preencheData (int dia, int mes, int ano) {
this.dia = dia;
this.mes = mes;
this.ano = ano;
}
String getFormatada(){
String formata = this.dia + "/" + this.mes + "/" + this.ano;
return formata;
}
}
public class Empresa {
String nome;
String cpf;
int livre = 0;
Funcionario[] empregados;
void adiciona(Funcionario f) {
this.empregados[this.livre] = f;
this.livre++;
}
void mostraEmpregados() {
for (int i = 0; i < this.livre; i++) {
System.out.println("Funcionário na posição: " + (i+1));
this.empregados[i].mostra();
}
}
boolean contem(Funcionario f){
for(int i = 0; i < this.livre; i++){
if(f == this.empregados[i]){
return true;
}
}
return false;
}
}
Essa é minha saída quando executo:
run:
Funcionário na posição: 1
Nome: Gabriel
Dept: rh
Salario: 1000.0
Data de entrada: 14/5/1998
RG: 123344566
Ganho anual: R$12000.0
-------------
Funcionário na posição: 2
Nome: Melo
Dept: rh
Salario: 1100.0
Data de entrada: 14/5/1998
RG: 111111111
Ganho anual: R$13200.0
-------------
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)
Como vcs podem ver, as datas estão iguais! Não sei o que pode estar acontecendo. Agradeço qualquer ajuda!