class Funcionario8{
String nome;
String depto;
double salario;
Data datEntradaBanco = new Data();
String rg;
void mostra() {
System.out.println("Nome: " + this.nome);
System.out.println("Depto: " + this.depto);
System.out.println("Salario:" + this.salario);
System.out.println("Dia: " + this.datEntradaBanco.dia);
System.out.println("Mês: " + this.datEntradaBanco.mes);
System.out.println("Ano: " + this.datEntradaBanco.ano);
System.out.println("RG: " + this.rg);
System.out.println("Ganho Anual: " + this.calculaGanhoAnual());
}
public double calculaGanhoAnual () {
double ganhoAnual = 0;
return ganhoAnual = this.salario * 12;
}
}
class Data {
int dia;
int mes;
int ano;
}
class TesteFuncionario8 {
public static void main(String[] args) {
Funcionario8.salario = 100000;
Funcionario8.calculaGanhoAnual();
}
}
Ocorre erro de compilação.
C:\CURSOS\ALURA\Java I Primeiros passos>javac Funcionario8.java
Funcionario8.java:33: error: non-static variable salario cannot be referenced from a static context
Funcionario8.salario = 100000;
^
Funcionario8.java:34: error: non-static method calculaGanhoAnual() cannot be referenced from a static context
Funcionario8.calculaGanhoAnual();
^
2 errors
C:\CURSOS\ALURA\Java I Primeiros passos>
No meu ponto de vista o erro ocorre porque estamos movendo as informações para uma classe e não para um objeto. A classe é uma coisa abstrata que da forma ao objeto. Esta correto essa resposta ?