Método estático vs 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 asociado con una clase. Un método asociado con un objeto se llama método no estático (instancia). En los idiomas orientados a objetos, los métodos se utilizan como mecanismo para operar en datos que se almacenan 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 definir un método estático en Java. La estática debe usarse al definir un método estático en Java.
clase pública myclass público estático mystaticmethod () // Código del método estáticoEl método estático definido anteriormente podría llamarse de la siguiente manera utilizando el nombre de la clase a la que pertenece.
Mi clase.MystaticMethod ();
Una cosa importante a tener en cuenta es que los métodos estáticos solo pueden acceder a los 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 asociado con un objeto en una clase. Por lo tanto, los métodos no estáticos se denominan 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 un método no estático, el objeto que invoca el método se pasa como un argumento implícito (se llama la referencia 'esta'). Entonces, dentro del método, esta palabra clave se puede usar para referirse al objeto que llamó el método. El siguiente es un ejemplo de definir un método de instancia en Java.
clase pública myclass público 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.
MyClass objmyclass = new myClass ();
objmyclass.MyInStancemethod ();
¿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. Una clase debe ser instanciada primero 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ó el método y se puede acceder utilizando esta palabra clave dentro del método. Pero esta palabra clave no puede usarse en métodos estáticos, ya que no están asociados con un objeto particular.