no livro do Deitel é dito que é um erro um método static chamar um método ou variável de instância.
se eu tentar compilar o programa abaixo, surgirá a seguinte mensagem de erro: non-static method fazNada() cannot be referenced from a static context
public class Teste {
public static void main(String[] args) {
fazNada();
}
void fazNada() {
int var = 0;
}
}
porém se eu fizer assim, funciona.
public class Teste {
public static void main(String[] args) {
Teste teste = new Teste();
teste.fazNada();
}
void fazNada() {
int var = 0;
}
}
Mas no segundo caso, o método estático main não está chamando um método de instância?
Em programas curtos, sendo o método main estático, eu não posso chamar diretamente outros métodos da classe dentro dele?
A solução é mesmo fazer como no segundo caso apresentado acima, ou fazer todos os métodos do tipo static??
