Diferença entre o método estático e não estático

Anonim

Método estático contra não estático

Um método é uma série de instruções que são realizadas para executar uma tarefa específica. Métodos podem levar entradas e produzir saídas. Os métodos estáticos e não estáticos são dois tipos de métodos presentes em linguagens de programação orientadas a objetos. Um método estático é um método que está associado a uma classe. Um método associado a um objeto é chamado de método não estático (instância). Em linguagens orientadas a objetos, os métodos são usados ​​como um mecanismo para operar em dados armazenados em objetos.

O que é um método estático?

Na programação orientada a objetos, o método estático é um método associado a uma classe. Portanto, métodos estáticos não têm a capacidade de operar em uma instância específica de uma classe. Os métodos estáticos podem ser invocados sem usar um objeto da classe que contenha o método estático. Seguir é um exemplo de definir um método estático em Java. A estática deve ser usada ao definir um método estático em Java.

classe pública MyClass { public static void MyStaticMethod () { // código do método estático } }

O método estático definido acima pode ser chamado da seguinte forma usando o nome da classe a que pertence.

MyClass. MyStaticMethod ();

Uma coisa importante a observar é que os métodos estáticos só podem acessar membros estáticos.

O que é um método não estático?

Um método não estático ou um método de instância é um método que está associado a um objeto em uma classe. Portanto, métodos não estáticos são chamados usando um objeto da classe em que o método é definido. Um método não estático pode acessar membros não estáticos, bem como membros estáticos de uma classe. Em muitos idiomas orientados a objetos (como C ++, C #, Java), quando um método não estático é chamado, o objeto que invocou o método é passado como um argumento implícito (é chamado de referência 'this'). Então, dentro do método, essa palavra-chave pode ser usada para se referir ao objeto que chamou o método. Seguir é um exemplo de definir um método de instância em Java.

public class MyClass { public void MyInstanceMethod () { // código do método de instância } }

O método de instância definido acima poderia ser chamado da seguinte forma usando um objeto da classe a que pertence.

MyClass objMyClass = new MyClass ();

objMyClass. MyInstanceMethod ();

Qual a diferença entre o método estático e não estático?

Os métodos estáticos são métodos associados a uma classe, enquanto métodos não estáticos são métodos associados a objetos de uma classe. Uma classe precisa ser instanciada primeiro para invocar um método não estático, mas os métodos estáticos não possuem esse requisito.Eles podem ser simplesmente invocados usando o nome da classe que contém o método estático. Outra diferença importante é que um método não estático geralmente possui uma referência ao objeto que chamou o método e pode ser acessado usando esta palavra-chave dentro do método. Mas essa palavra-chave não pode ser usada em métodos estáticos, uma vez que não estão associados a um objeto específico.