Um método estático pertence à classe e um método não estático pertence a um objeto de uma classe. Os métodos estáticos podem ser acessados diretamente da classe, enquanto os métodos não estáticos (ou métodos de instância, como gosto de chamá-los) precisam ser acessados de uma instância.
Quando um método deve ser estático versus não estático?
Um método estático pertence à própria classe e um método não estático (também conhecido como instância) pertence a cada objeto gerado a partir dessa classe. Se o seu método faz algo que não depende das características individuais de sua classe, torne-o estático (isso diminuirá a pegada do programa).
Quando você usaria um método não estático?
Um método não estático em Java pode acessar métodos e variáveis estáticos da seguinte forma:
- Um método não estático pode acessar qualquer método estático sem criar uma instância da classe.
- Um método não estático pode acessar qualquer variável estática sem criar uma instância da classe porque a variável estática pertence à classe.
Quando você deve usar funções estáticas?
Quando você quer ter uma variável que sempre tenha o mesmo valor para todos os objetos da classe, para sempre, torne-a estática. Se você tem um método que não usa nenhuma variável de instância ou métodos de instância, você provavelmente deve torná-lo estático.
Qual é a diferença entre campo estático e não estático?
Variáveis ou campos estáticos pertencem à classe e não a nenhum objeto da classe. Uma variável estática é inicializada quando a classe é carregada em tempo de execução. Campos não estáticos são campos de instância de um objeto. Eles só podem ser acessados ou invocados através de uma referência de objeto.