¿Cuál es la diferencia entre variables de clase y variables de instancia?

La diferencia entre variables de clase y variables de instancia:

1. Las variables de instancia se declaran en la clase, pero fuera del método, constructor o cualquier bloque. Las variables de clase (también llamadas variables estáticas) se declaran dentro de una clase usando la palabra clave estática, pero fuera de un método, constructor o bloque.

2. Cuando se utiliza la palabra clave "nuevo" para crear un objeto, las variables de instancia se crearán y destruirán cuando se destruya el objeto. Las variables estáticas se crearán cuando se inicie el programa y las variables estáticas se generarán cuando el programa se detenga.

3. Puede acceder directamente a las variables de instancia llamando al nombre de la variable en la clase. Sin embargo, dentro de los métodos estáticos (cuando las variables de instancia son accesibles), se deben llamar usando sus nombres completos. Se puede acceder a las variables estáticas llamando a ClassName.VariableName

con el nombre de la clase.

4. Las variables de instancia contienen valores a los que deben hacer referencia múltiples métodos, constructores o bloques u objetos que deben existir en toda la clase.

Una parte fundamental del estado. . Sólo hay una copia de cada variable de clase por clase, sin importar cuántos objetos se creen a partir de ella.

Código de demostración de ejemplo:

Clase pública VariableExample{

int myVariable;

static int data = 30;

public static void main(String args[]){

VariableExample obj = new VariableExample();

System.out.println("Valor de la variable de instancia: " obj. myVariable);

System.out.println("Valor de la variable estática: " VariableExample.data);

}}

Resultado de la ejecución:

Valor de la variable de instancia: 0

Valor de la variable estática: 30

rc="/style/tongji.js">