1
resposta

Nao consigo achar o erro para a entrada da data

class funcionario {

  String name;
  String setor;
  double salario;
  String cpf;
  Data dataEntrada;

  void aumentoSalario( double valor){
      this.salario += valor;
    } 
  double ganhosAnuais(){
        return this.salario * 12;

    }
    void mostra(){
        System.out.println("Cadastro do funcionario:");
        System.out.println("Nome: " + this.name);
        System.out.println("Setor: " + this.setor);
        System.out.println("Salario: " + this.salario);
        System.out.println("CPF: " + this.cpf);
        System.out.println("Data de Entrada: " + this.dataEntrada);
    }


 public class Data{

     public int dia;
     public int mes;
     public int ano;

     public void preencherData(int dia, int mes, int ano){
         this.dia = dia;
         this.mes = mes;
         this.ano = ano;
     }
 }


    public static void main (String[] args){

     funcionario f1 = new funcionario();
     f1.name = "Chico Neves";
     f1.setor= "Design";
     f1.salario = 4500.00;
     f1.cpf="123456789";

     f1.dataEntrada = new Data();
     f1.dataEntrada.preencherData(7,2,1981);

     f1.mostra();
 } 
 }

A mensagem de erro que recebo e:

C:\Users\leandrp\Desktop\ALURA\java\banco>javac funcionario.java funcionario.java:48: error: non-static variable this cannot be referenced from a static context f1.dataEntrada = new Data();

1 resposta

Leandro, repare que a sua classe Data está dentro das chaves da classe funcionario. Isso se chama classe aninhada e não vemos nesse curso, é algo mais pra frente.

basta tirá-la dai, algo assim:

class Data {

} 

class Funcionario {

}

Por uma questão de convenção, é bom tambem a sua classe Funcionario ter o F maiusculo.