¿Cuál es la diferencia entre método de instancia y método estático?


Respuesta 1:

El paradigma básico en Java es que escribes clases y que esas clases son instanciadas. Los objetos instanciados (una instancia de una clase) tienen atributos asociados con ellos (variables miembro) que afectan su comportamiento; cuando la instancia tiene su método ejecutado, se referirá a estas variables.

Sin embargo, todos los objetos de un tipo particular pueden tener un comportamiento que no depende en absoluto de las variables miembro; estos métodos se hacen mejor estáticos. Al ser estático, no se requiere ninguna instancia de la clase para ejecutar el método.

Puede hacer esto para ejecutar un método estático:

MyObject.staticMethod (); // Simplemente se refiere al código estático de la clase

Pero para ejecutar un método no estático, debe hacer esto:

MyObject obj = new MyObject (); // Crear una instancia obj.nonstaticMethod (); // Consulte el código de clase de la instancia

En un nivel más profundo, cuando el compilador reúne una clase, contiene varios punteros a los métodos. Cuando se ejecutan esos métodos, sigue los punteros y ejecuta el código en el otro extremo. Si se crea una instancia de una clase, el objeto creado contiene un puntero a la "tabla de método virtual", que señala los métodos que se llamarán para esa clase en particular en la jerarquía de herencia. Sin embargo, si el método es estático, no se necesita una "tabla de método virtual": todas las llamadas a ese método van exactamente al mismo lugar en la memoria para ejecutar exactamente el mismo código. Por esa razón, en los sistemas de alto rendimiento es mejor usar un método estático si no depende de las variables de instancia.

https: //stackoverflow.com/questi ...


Respuesta 2:

Diferencia entre métodos estáticos y métodos de instancia

  1. El método de instancia son métodos que requieren que se cree un objeto de su clase antes de poder ser llamado. Los métodos estáticos son los métodos en Java que se pueden invocar sin crear un objeto de clase. El método estático se declara con una palabra clave estática. El método de instancia no es con palabra clave estática. Método estático significa que existirá como una copia única para una clase. Pero los métodos de instancia existen como copias múltiples dependiendo de la cantidad de instancias creadas para esa clase. Los métodos estáticos pueden invocarse utilizando la referencia de clase. Los métodos estáticos o no estáticos se invocan mediante la referencia de objetos. Los métodos estáticos no pueden acceder a los métodos de instancia y a las variables de instancia directamente. El método de instancia puede acceder a variables estáticas y métodos estáticos directamente.

Respuesta 3:

Diferencia entre métodos estáticos y métodos de instancia

  1. El método de instancia son métodos que requieren que se cree un objeto de su clase antes de poder ser llamado. Los métodos estáticos son los métodos en Java que se pueden invocar sin crear un objeto de clase. El método estático se declara con una palabra clave estática. El método de instancia no es con palabra clave estática. Método estático significa que existirá como una copia única para una clase. Pero los métodos de instancia existen como copias múltiples dependiendo de la cantidad de instancias creadas para esa clase. Los métodos estáticos pueden invocarse utilizando la referencia de clase. Los métodos estáticos o no estáticos se invocan mediante la referencia de objetos. Los métodos estáticos no pueden acceder a los métodos de instancia y a las variables de instancia directamente. El método de instancia puede acceder a variables estáticas y métodos estáticos directamente.

Respuesta 4:

Diferencia entre métodos estáticos y métodos de instancia

  1. El método de instancia son métodos que requieren que se cree un objeto de su clase antes de poder ser llamado. Los métodos estáticos son los métodos en Java que se pueden invocar sin crear un objeto de clase. El método estático se declara con una palabra clave estática. El método de instancia no es con palabra clave estática. Método estático significa que existirá como una copia única para una clase. Pero los métodos de instancia existen como copias múltiples dependiendo de la cantidad de instancias creadas para esa clase. Los métodos estáticos pueden invocarse utilizando la referencia de clase. Los métodos estáticos o no estáticos se invocan mediante la referencia de objetos. Los métodos estáticos no pueden acceder a los métodos de instancia y a las variables de instancia directamente. El método de instancia puede acceder a variables estáticas y métodos estáticos directamente.