1. Variables estáticas utilizadas en estática en Java
1. Los miembros en Java que están modificados por Static se llaman miembros estáticos o miembros de la clase. Pertenece a toda la clase, no a un objeto, es decir, es compartido por todos los objetos de la clase y existe en prioridad sobre los objetos. Se puede acceder directamente a los miembros estáticos utilizando nombres de clase u nombres de objetos. Use Static para modificar variables, métodos y bloques de código.
2. El modificador público representa público y público, y las variables estáticas se modifican con variables estáticas.
3. En un método estático, los miembros estáticos en la misma clase pueden llamarse directamente, pero los miembros no estatales no pueden llamarse directamente.
clase pública HellWorld {String name = "java"; // variable no estática cadena estática hobby = "programación"; // variable estática public static void print () {System.out.println ("Bienvenido:" + nombre + "!"); // variable no estática System.out.println ("Bienvenido:" + Hobby + "!"); // puede llamar directamente a variables estáticas}}4. Si desea llamar a variables no estáticas en un método estático, puede crear un objeto de la clase y luego acceder a las variables no estáticas a través del objeto.
public class Helloworld {String name = "java"; // variable no estática static string hobby = "programa"; // variable estática // llamando a variable no estática public static void print () {// Creando el objeto de la clase Helloworld Hello = New Helloworld (); // Use objetos para llamar al sistema variable no estático.out.println en un método estático ("Bienvenido:"+Hello.name+"!"); // En un método estático, puede llamar directamente a la variable estática System.out.printn ("Bienvenido a Me gusta"+programa+""+Hello.name); }}5. En los métodos de miembros ordinarios, puede acceder directamente al mismo tipo de variables no estáticas y variables estáticas.
clase pública HellWorld {String name = "java"; // Variable no estática Cadena estática Hobby = "Programación"; // variable estática public void print () {// Método normal System.out.println ("Bienvenido:" + nombre + "!"); System.out.prinltn ("Bienvenido a Me gusta"+programa+"+Hello.name);}}6. Los métodos no estáticos no pueden llamarse directamente en métodos estáticos. Se deben acceder a los métodos no estáticos a través de objetos.
public class Hellworld {String name = "java"; // variable no estática static string hobby = "programa"; // variable estática // método no estático public void show () {system.out.println ("Soy un método no estático, y no puedo llamarse directamente mediante método estático ..."); } // Método estático public static void show2 () {System.out.println ("Soy un método estático, y puede llamarse directamente por método estático"); } // El método no estático se llama a través de objetos en métodos estáticos. Puede llamar directamente al método estático public static void print () {// Crear el objeto de la clase HelloWorld Hello = New HelloWorld (); // Calcule el método no estático hello.show () en el método estático; // Calcule el método estático show2 (); }}2. Bloques de inicialización estática utilizados en Java
1. En la declaración de clase, se pueden incluir múltiples bloques de inicialización. Cuando se crea una instancia de la clase, estos bloques de código se ejecutarán a su vez. Si usa Static para modificar el bloque de inicialización, se llama bloque de inicialización estática.
2. La diferencia entre las variables y las variables de clase:
a) Ubicación de almacenamiento: las variables de clase se almacenan en el área del método a medida que se carga la clase; Las variables de instancia existen en la memoria del montón a medida que se establece el objeto.
b) Ciclo de vida: el ciclo de vida de una variable de clase es el más largo y desaparece a medida que la clase desaparece; El ciclo de vida de una variable de instancia desaparece a medida que el objeto desaparece.
3. El bloque de inicialización estática solo se ejecuta cuando la clase se carga y solo se ejecutará una vez. Al mismo tiempo, el bloque de inicialización estática solo puede asignar valores a variables estáticas y no puede inicializar las variables de miembros ordinarios. Cuando el programa se está ejecutando, el ayuno de inicialización estática se ejecuta primero y tiene prioridad sobre la función principal, luego se ejecuta el bloque de inicialización normal y finalmente se ejecuta el método de construcción.
clase pública staticDemo {int num1; // declarar variable 1 int num2; // declarar variable 2 static int num3; // declarar variable estática 3 public staticDemo () {// Constructor Method num1 = 88; System.out.println ("Asignar valor a la variable 1 a través del método de construcción"); } {// Bloque de inicialización num2 = 99; System.out.println ("Asignar valor a la variable 2 a través del bloque de inicialización"); } static {// Inicialización estática Aquí no puede Giel Variables normales Asignar valor num3 = 77; System.out.println ("Asignar valor a la variable estática 3 a través del bloque de inicialización estática"); } public static void main (string [] args) {staticDemo hello = new staticDemo (); // Cree el objeto de la clase Hello System.out.println ("num1:" + hello.num1); System.out.println ("num2:" + hello.num2); System.out.println ("num3:" + hello.num3); StaticDemo hello1 = new staticDemo (); }} Resultados de ejecución: