Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

A data está como private

Como acessar a data da resposta, sendo essa private?

class Funcionario{

private Data formata;

    public void setData(Data formata){

        this.formata =formata ;
    }

    public Data getData() {

        return this.formata;
    }

System.out.println("Data de entrada: " +this.getData().dia+"/"+this.getData().mes+"/"+this.getData().ano);
public class TestaEmpresa{

     empresa.setFuncionarios(new Funcionario[4]);

     Funcionario f1 = new Funcionario();

     Funcionario joao = new Funcionario("Joao Cabral de Melo Neto First", 3000, 200 , "35.245.854-11", "Depto Agencioa", new Data(17,01,2018) );    
     empresa.adiciona(joao);

f1.setData(new Data(30,12,2017));

Erro (output):

λ javac TestaEmpresa.java .\Funcionario.java:104: error: dia has private access in Data System.out.println("Data de entrada: " +this.getData().dia+"/"+this.getData().mes+"/"+this.getData().ano); ^ .\Funcionario.java:104: error: mes has private access in Data System.out.println("Data de entrada: " +this.getData().dia+"/"+this.getData().mes+"/"+this.getData().ano); ^ .\Funcionario.java:104: error: ano has private access in Data System.out.println("Data de entrada: " +this.getData().dia+"/"+this.getData().mes+"/"+this.getData().ano); ^ 3 errors

2 respostas
solução!

Olá Sidney,

o problema é que as propriedades da classe Data estão private:

    private int dia;
    private int mes;
    private int ano;

No entanto acredito que elas devam ser mesmo private. Ao invés de:

System.out.println("Data de entrada: " +this.getData().dia+"/"+this.getData().mes+"/"+this.getData().ano);

você poderia utilizar:

System.out.println("Data de entrada: " + this.getData().formata());

pois o método formata() já retorna a data no formato dia/mês/ano.

Obrigado era isso mesmo.