Olá Emerson, tudo bem com você?
Tudo em Java gira em torno de classes, portanto sempre que quisermos implementar um método, consequentemente, precisaremos de uma classe. Quando você se referiu ao método como a "antiga função", só faz sentido aqui pois o método nada mais é que uma função associada a uma classe. E como sabemos, no mundo Java não existe função sem classe. Eu posso estar me estendendo um pouco de mais nesse assunto, mas pensando orientado a objetos, seria como imaginar ações (métodos) como andar()
, falar()
, acelerar()
, voar()
... essas ações não podem ser realizadas sem alguém ou algo para executá-las, portanto precisamos das classes/objetos cumprir essa parte.
Mas voltando à pergunta, nós temos os métodos estáticos que nos permitem usá-los sem precisar instanciar um objeto da classe. Como vimos na aula do Paulo sobre o assunto, membros (atributos e métodos) estáticos são acessados diretamente da classe sem precisar instanciar nada, enquanto os membros de instância que já conhecemos depende de um objeto para serem acessados. Não se preocupe, teremos bastante contato com métodos estáticos de classes muito úteis mais para frente.
Eu não sei se entendi muito bem a sua segunda pergunta, mas é possível sim que projetos cheguem a essa quantidade de classes. Embora você não vá chegar ao ponto de criar dezenas de classes com métodos estáticos, o mais comum de acontecer, como eu mencionei, é você utilizar métodos estáticos já implementados em outras bibliotecas para desenvolver o seu sistema. Em outras palavras, o que eu quero dizer é que você terá a sua disposição várias funcionalidades que foram implementadas dessa forma, sem precisar instanciar nada, o que não quer dizer que devemos descartar o uso de objetos já que os próprios métodos estáticos podem ser perigosos se não usarmos com moderação.
Se algum ponto não ficou claro, estou à disposição!
Forte abraço e bons estudos!!