Porque para usar os métodos de uma determinada class que contenha o método main a assinatura dos métodos devem ser static? ja que classes sem o método main podemos realizar chamadas aos métodos sem que na assinatura dos métodos tenha “static”…
Porque a classe main não pode ser intanciada portanto se voce quizer executar algum metodo dela em outra classe terá que usar um metodo estatico da classe main.
Isso ocorre em todas as classes que nao podem ser instanciadas.
Ja classes que podem ser instanciadas voce pode utilizar metodos estaticos ou não, ai vai do que voce esta programando.
Guilherme_Gomes
Você pode instanciar a classe que tem o método main. Mas lembre-se que, mesmo em uma classe qualquer, um método static só pode acessar variaveis e metodos static dela.
Os métodos só precisam ser estátic se você quiser chama-los diretamente do main, que também é static. Via de regra, métodos estáticos só podem chamar métodos estáticos.
Você pode, dentro do main, criar uma instância da classe e chamar métodos normais através da instância. Por exemplo:
publicclassExemplo{privateintx;privateinty;publicExemplo(intx,inty){this.x=x;this.y=y;}publicintsoma(){returnx+y;}publicintsub(){returnx-y;}publicintmult(){returnx*y;}publicintdiv(){returnx/y;}publicstaticvoidmain(Stringargs[]){//Primeiro criamos a instânciaExemploexemplo=newExemplo(3,2);//Para depois chamar seus métodosSystem.out.println(exemplo.soma());System.out.println(exemplo.sub());System.out.println(exemplo.div());System.out.println(exemplo.mult());}}