Método estático frente a no estático
Un método es una serie de declaraciones que se llevan a cabo para realizar una tarea específica. Los métodos pueden tomar entradas y producir salidas. Los métodos estáticos y no estáticos son dos tipos de métodos presentes en los lenguajes de programación orientados a objetos. Un método estático es un método que está asociado con una clase. Un método que está asociado con un objeto se denomina método no estático (de instancia). En los lenguajes orientados a objetos, los métodos se utilizan como un mecanismo para operar con datos que están almacenados en objetos.
¿Qué es un método estático?
En la programación orientada a objetos, el método estático es un método asociado con una clase. Por lo tanto, los métodos estáticos no tienen la capacidad de operar en una instancia particular de una clase. Los métodos estáticos se pueden invocar sin usar un objeto de la clase que contiene el método estático. El siguiente es un ejemplo de definición de un método estático en Java. El estático debe usarse al definir un método estático en Java.
public class MyClass { public static void MyStaticMethod() { // código del método estático }
}
El método estático definido anteriormente podría llamarse de la siguiente manera utilizando el nombre de la clase a la que pertenece.
MiClase. MiMétodoEstático();
Una cosa importante a tener en cuenta es que los métodos estáticos solo pueden acceder a miembros estáticos.
¿Qué es un método no estático?
Un método no estático o un método de instancia es un método que está asociado con un objeto en una clase. Por lo tanto, los métodos no estáticos se llaman utilizando un objeto de la clase en la que se define el método. Un método no estático puede acceder a miembros no estáticos así como a miembros estáticos de una clase. En muchos lenguajes orientados a objetos (como C++, C, Java), cuando se llama a un método no estático, el objeto que invocó el método se pasa como un argumento implícito (se llama la referencia 'esto'). Entonces, dentro del método, esta palabra clave se puede usar para referirse al objeto que llamó al método. El siguiente es un ejemplo de definición de un método de instancia en Java.
public class MyClass { public void MyInstanceMethod() { // código del método de instancia }
}
El método de instancia definido anteriormente podría llamarse de la siguiente manera utilizando un objeto de la clase a la que pertenece.
MiClase objMiClase=new MiClase();
objMiClase. MiMétodoDeInstancia();
¿Cuál es la diferencia entre el método estático y no estático?
Los métodos estáticos son métodos asociados con una clase, mientras que los métodos no estáticos son métodos asociados con objetos de una clase. Primero se debe crear una instancia de una clase para invocar un método no estático, pero los métodos estáticos no tienen este requisito. Se pueden invocar simplemente usando el nombre de la clase que contiene el método estático. Otra diferencia importante es que un método no estático generalmente posee una referencia al objeto que llamó al método y se puede acceder a él usando la palabra clave this dentro del método. Pero esta palabra clave no se puede usar en métodos estáticos ya que no están asociados con un objeto en particular.