Em java, qual é a diferença entre método de instância e método estático?

Como o nome sugere, os métodos de instância estão vinculados a uma instância de uma classe que nada mais é que um objeto. Os métodos de instância podem ser acessados ​​apenas através de uma referência a um objeto. Os métodos de instância podem acessar variáveis ​​estáticas e de instância. Métodos estáticos são vinculados a uma classe. Todos os objetos da classe compartilham o mesmo método. Métodos estáticos podem ser acessados ​​através do próprio nome da classe. Métodos estáticos podem acessar diretamente apenas variáveis ​​estáticas.

Para ser dito francamente, a principal diferença é que um método de instância pertence a um objeto enquanto um método estático pertence à classe.

O que significa que para acessar um método de instância, você precisa criar um objeto de uma classe java e o objeto possui métodos e variáveis ​​de instância acessíveis através do objeto. (referência do objeto)

Os métodos e variáveis ​​estáticos não precisam de um objeto. Eles são acessados ​​através da classe. (referência de classe)

Estudante de classe pública { nome de string privado; // método da instância para definir o nome do objeto do aluno cadeia pública setName (nome da cadeia) { this.name = nome; } // método estático para obter um objeto de aluno com o nome fornecido public static Student getStudent (nome da string) { // ... código para obter o aluno com o nome fornecido do banco de dados aluno de retorno; }}classe StudentDemo { public static void main (String args []) { // cria o objeto Student Aluno student1 = new Student (); // acessa o método da instância através do objeto // isso definirá o nome do objeto Student que criamos student1.setName ("John Doe"); // acessa o método estático através da classe Student.getStudent ("Jane Doe"); }}

O paradigma básico em Java é que você escreve classes e que essas classes são instanciadas. Objetos instanciados (uma instância de uma classe) têm atributos associados a eles (variáveis-membro) que afetam seu comportamento; quando a instância tem seu método executado, ela se refere a essas variáveis.

No entanto, todos os objetos de um tipo específico podem ter um comportamento que não depende totalmente das variáveis ​​de membro; é melhor tornar esses métodos estáticos. Por ser estático, nenhuma instância da classe é necessária para executar o método.

Você pode fazer isso para executar um método estático:

MyObject.staticMethod (); // Simplesmente se refere ao código estático da classe

Mas, para executar um método não estático, você deve fazer o seguinte:

MyObject obj = new MyObject (); // Cria uma instânciaobj.nonstaticMethod (); // Consulte o código da classe da instância

Em um nível mais profundo, quando o compilador reúne uma classe, ele contém vários indicadores para os métodos. Quando esses métodos são executados, ele segue os ponteiros e executa o código na extremidade oposta. Se uma classe é instanciada, o objeto criado contém um ponteiro para a "tabela de método virtual", que aponta para os métodos a serem chamados para essa classe específica na hierarquia de herança. No entanto, se o método for estático, nenhuma "tabela de método virtual" será necessária: todas as chamadas para esse método vão exatamente para o mesmo local na memória para executar exatamente o mesmo código. Por esse motivo, em sistemas de alto desempenho, é melhor usar um método estático se você não depende de variáveis ​​de instância.

https://stackoverflow.com/questions/11993077/difference-between-static-methods-and-instance-methods

Diferença entre métodos estáticos e métodos de instância

  1. Método de instância são métodos que exigem que um objeto de sua classe seja criado antes de poder ser chamado. Métodos estáticos são os métodos em Java que podem ser chamados sem criar um objeto de classe.
  2. O método estático é declarado com a palavra-chave estática. O método de instância não está com palavra-chave estática.
  3. Método estático significa que existirá como uma única cópia para uma classe. Mas os métodos de instância existem como várias cópias, dependendo do número de instâncias criadas para essa classe.
  4. Métodos estáticos podem ser chamados usando referência de classe. Métodos de instância ou não estáticos são chamados usando referência de objeto.
  5. Métodos estáticos não podem acessar métodos e variáveis ​​de instância diretamente. O método de instância pode acessar variáveis ​​estáticas e métodos estáticos diretamente.

Oi…

Aqui vou falar sobre o método de instância e o método estático.

Método de instância

O método de instância requer que um objeto de sua classe seja criado antes de poder ser chamado. Para invocar um método de instância, precisamos criar um Objeto da classe dentro do qual ele foi definido.

Método de sintaxe da instância

public void geek (nome da string)

{

// código a ser executado ...

}

// O tipo de retorno pode ser int, float String ou tipo de dados definido pelo usuário.

Método estático

Métodos estáticos são os métodos em Java que podem ser chamados sem criar um objeto de classe. Eles são referenciados pelo próprio nome da classe ou referência ao objeto dessa classe.

Sintaxe do método estático

public static void geek (nome da string)

{

// código a ser executado ...

}

// Deve ter um modificador estático em sua declaração.

// O tipo de retorno pode ser int, float, String ou tipo de dados definido pelo usuário.

Diferença entre método de instância e método estático

  • O método de instância pode acessar os métodos e variáveis ​​de instância diretamente.
  • O método de instância pode acessar variáveis ​​estáticas e métodos estáticos diretamente.
  • Os métodos estáticos podem acessar diretamente as variáveis ​​estáticas e os métodos estáticos.
  • Métodos estáticos não podem acessar métodos e variáveis ​​de instância diretamente. Eles devem usar referência ao objeto. E o método estático não pode usar essa palavra-chave, pois não há instância para 'this' se referir.

Método de instância

  • Os métodos de instância são chamados quando um objeto de sua classe é criado.
  • Métodos de instância não são criados com a palavra-chave estática.
  • Os métodos de instância existem como várias cópias, dependendo do número de instâncias criadas para essa classe.
  • O método de instância pode acessar variáveis ​​estáticas e métodos estáticos diretamente.

Método estático

  • Métodos estáticos são os métodos em Java que podem ser chamados sem criar um objeto de classe.
  • O método estático é realmente declarado com a palavra-chave estática.
  • Método estático significa que existirá como uma única cópia para uma classe.
  • Métodos estáticos não podem acessar métodos e variáveis ​​de instância diretamente.