Em Java, os métodos definem o comportamento de classes e objetos. Compreender a diferença entre métodos estáticos e métodos de instância é essencial para escrever código limpo e eficiente.
O que é um método estático?
UM método estático pertence à classe e não a qualquer objeto específico.
- Pode ser chamado sem criar uma instância da classe.
- Como os métodos estáticos são específicos de qualquer objeto, eles podem acessar apenas membros estáticos (dados e métodos) e não podem acessar membros não estáticos.
import java.io.*; class Geeks { // static method public static void greet() { System.out.println('Hello Geek!'); } public static void main(String[] args) { // calling the method directily greet(); // using the class name Geeks.greet(); } }
Saída
Hello Geek! Hello Geek!
Explicação: O exemplo acima mostra um método estático greet() dentro da classe Geeks. Métodos estáticos podem ser chamados sem criar um objeto. No método principal não estamos criando um objeto da classe Geek, estamos chamando o método diretamente pelo nome da classe que é Geeks e então imprimimos a saída.
O que é um método de instância?
Um Método de instância pertence a um objeto.
- Precisa criar uma instância da classe para chamar.
- Pode acessar variáveis de instância, outros métodos de instância e membros estáticos da classe.
- Tenha acesso a
thisreferência que aponta para o objeto atual.
import java.io.*; class Test { String n = ''; // Instance method public void test(String n) { this.n = n; } } class Geeks { public static void main(String[] args) { // create an instance of the class Test t = new Test(); // calling an instance method in the class 'Geeks' t.test('GeeksforGeeks'); System.out.println(t.n); } }
Saída
GeeksforGeeks
Explicação: O exemplo acima mostra como usar um método de instância em Java. Estamos criando um objeto da classe Test e chamando o método de teste para definir um valor e então imprimindo a saída.
classificação por seleção em java
Diferença entre método estático e método de instância
A tabela a seguir lista os principais diferenças entre os métodos estáticos e os métodos de instância em Java.
Características | Método estático delimitador java | Método de instância |
|---|---|---|
Definição | Criado usando a palavra-chave estática e recuperado sem criar um objeto. | Requer que um objeto de sua classe seja invocado. |
Acesso | Acesse apenas variáveis e métodos estáticos. converter int para string java | Pode acessar membros estáticos e de instância. |
| Não é possível usar o esse palavra-chave dentro de métodos estáticos. | Pode usar a palavra-chave this para se referir ao objeto atual. |
Substituir | Não suporta polimorfismo de tempo de execução | Suporta polimorfismo de tempo de execução |
Alocação de memória | Carregado uma vez por aula | Cada objeto tem sua própria cópia comando grep no linux |