Para aparecer a data de admissão do funcionário na tela, utilizei a classe "data" com o método "getDataFormatada". O código roda bem se eu não utilizar a classe da de entrada, porém, se eu utilizo, o código não compila e aparece a seguinte mensagem de erro:
javac Funcionario.java Funcionario.java:26: error: incompatible types: String cannot be converted to Data return this.dataEntrada.getDataFormatada(); ^
Segue o código:
class Funcionario {
//dados do funcionário
private String nome;
private double salario;
private Data dataEntrada;
//getters e setters dos atributos acima
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getSalario() {
return this.salario;
}
public void setSalario(double salario) {
this.salario = salario;
}
public Data getDataEntrada() {
return this.dataEntrada.getDataFormatada();
}
public void setDataEntrada (Data preencheData) {
this.dataEntrada = dataEntrada;
}
//método que aumenta salário
public void recebeAumento(double valor) {
this.salario += valor;
}
//método que calcula salário anual
public double calculaGanhoAnual() {
return this.salario * 12;
}
}
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 getDataFormatada() {
return dia + "/" + mes + "/" + ano;
}
}
class TestaFuncionario {
public static void main(String[] args) {
Funcionario f1 = new Funcionario();
f1.setNome("Hugo");
f1.setSalario(100);
Data dataEntrada = new Data();
dataEntrada.preencheData(2, 5, 2014);
f1.setDataEntrada(dataEntrada);
f1.recebeAumento(50);
System.out.println(f1.getNome());
System.out.println(f1.getSalario());
System.out.println(f1.getDataEntrada());
}
}