Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

Variable estática en Java:¿Qué es el bloque estático y el método? [Ejemplo]

La estática puede ser:

  1. Variables estáticas
  2. Métodos estáticos
  3. Bloques estáticos de código.

Veamos primero las variables estáticas y los métodos estáticos.

¿Qué es la variable estática en Java?

Variable estática en Java es una variable que pertenece a la clase y se inicializa solo una vez al comienzo de la ejecución. Es una variable que pertenece a la clase y no al objeto (instancia). Las variables estáticas se inicializan solo una vez, al comienzo de la ejecución. Estas variables se inicializarán primero, antes de la inicialización de cualquier variable de instancia.

Sintaxis:

<class-name>.<variable-name>

¿Qué es el método estático en Java?

Método estático en Java es un método que pertenece a la clase y no al objeto. Un método estático solo puede acceder a datos estáticos. Es un método que pertenece a la clase y no al objeto (instancia). Un método estático solo puede acceder a datos estáticos. No puede acceder a datos no estáticos (variables de instancia).

Sintaxis:

<class-name>.<method-name>

Nota: El método principal es estático, ya que debe ser accesible para que se ejecute una aplicación, antes de que tenga lugar cualquier creación de instancias.


¡Aprendamos los matices de las palabras clave estáticas haciendo algunos ejercicios!

Ejemplo:cómo llamar a variables y métodos estáticos

Paso 1) Copie el siguiente código en un editor

public class Demo{
   public static void main(String args[]){
     Student s1 = new Student();
     s1.showData();
     Student s2 = new Student();
     s2.showData();
     //Student.b++;
     //s1.showData();
  }
}

class Student {
int a; //initialized to zero
static int b; //initialized to zero only when class is loaded not for each object created.

  Student(){
   //Constructor incrementing static variable b
   b++;
  }

   public void showData(){
      System.out.println("Value of a = "+a);
      System.out.println("Value of b = "+b);
   }
//public static void increment(){
//a++;
//}

}

Paso 2) Guarde y compile el código. Ejecute el código como, java Demo .

Paso 3) El resultado esperado se muestra a continuación

El siguiente diagrama muestra cómo se crean las variables y los objetos de referencia y cómo las diferentes instancias acceden a las variables estáticas.

Paso 4) Es posible acceder a una variable estática desde fuera de la clase usando la sintaxis ClassName.Variable_Name . Descomente las líneas # 7 y 8 . Guardar, compilar y ejecutar. Observe la salida.

Value of a = 0
Value of b = 1
Value of a = 0
Value of b = 2
Value of a = 0
Value of b = 3

Paso 5) Descomente las líneas 25, 26 y 27. Guardar, compilar y ejecutar.

	 error: non-static variable a cannot be referenced from a static context a++; 

Paso 6) Error =? Esto se debe a que no es posible acceder a la variable de instancia “a ” del método de clase estática de Java “increment “.

¿Qué es el bloque estático en Java?

El bloque estático es un bloque de declaración dentro de una clase de Java que se ejecutará cuando una clase se cargue por primera vez en la JVM. Un bloque estático ayuda a inicializar los miembros de datos estáticos , al igual que los constructores ayudan a inicializar los miembros de la instancia.

class Test{
 static {
 //Code goes here
 }
}

El siguiente programa es el ejemplo de un bloque estático de Java.

Ejemplo:Cómo acceder al bloque estático

public class Demo {
 static int a;
 static int b;
 static {
    a = 10;
    b = 20;
 }
 public static void main(String args[]) {

  System.out.println("Value of a = " + a);
  System.out.println("Value of b = " + b);

 	}
}

obtendrá el siguiente resultado del programa.

Value of a = 10
Value of b = 20

Java

  1. Palabra clave final de Java
  2. Operador de instancia de Java
  3. Clase estática anidada de Java
  4. Clase anónima de Java
  5. Clase única de Java
  6. Reflexión Java
  7. Manejo de excepciones de Java
  8. Clase Java ObjectOutputStream
  9. Genéricos de Java
  10. Clase de archivo Java
  11. Interfaz vs clase abstracta en Java:¿cuál es la diferencia?