Tenho o seguinte problema na hora de mostrar dataDemissao e dataAdmissao.
O problema é que quero converter as datas de admissão e demissão, que são private na classe Funcionário.
- A conversão fica na classe Data.
- A chamada da conversão fica na classe Funcionario.
- O método mostraData, onde tem a gambiarra, fica na classe Funcionario
Eu gostaria de ter algo tipo:
System.out.println("Demissao :" + this.empregados[i].dataDemissao.converteData());
System.out.println("Admissao :" + this.empregados[i].dataAdmissao.converteData());
Mas não posso devido ao modificador private (quero manter private) de dataAdmissao e dataDemissao.
por isto, fiz uma gambiarra o método mostraData. Nem sei se é gambiarra, ou se é a solução ideal mesmo. vou postar aqui os trechos que interessam.Alguém se habilita?
classe Funcionário
class Funcionario {
int codigo;
Pessoa dadosCadastrais;
private double salario;
private int departamento;
private Data dataAdmissao;
private Data dataDemissao;
...
public String mostraData(String tipo) {
if (tipo == "A") {
return(this.dataAdmissao.converteData()) ;
} else if (tipo == "D") {
return(this.dataDemissao.converteData()) ;
} else {
return("xx/xx/xx");
}
}
classe Empresa
void mostraEmpregados() {
for (int i = 0; i < this.empregados.length; i++) {
if (this.empregados[i] != null) {
System.out.println("Funcionário na posição: " + i);
System.out.println("Nome :" + this.empregados[i].dadosCadastrais.getNome());
System.out.println("Salario :" + this.empregados[i].getSalario());
System.out.println("Nascimento :" + this.empregados[i].dadosCadastrais.dataNascimento.converteData());
System.out.println("Admissao :" + this.empregados[i].mostraData("A"));
System.out.println("Demissao :" + this.empregados[i].mostraData("D"));
}
}
}
classe Data
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 converteData () {
String dt_trab_dia, dt_trab_mes ;
if (this.dia < 10){
dt_trab_dia = "0" + this.dia;
} else {
dt_trab_dia = "" + this.dia;
}
if (this.mes < 10){
dt_trab_mes = "0" + this.mes;
} else {
dt_trab_mes = "" + this.mes;
}
String dt_trab_ano = "" + this.ano;
return (dt_trab_dia + "/" + dt_trab_mes + "/" + dt_trab_ano);
}
}