Método estático de Java, variable y bloque con ejemplo

Tabla de contenido:

Anonim

La estática puede ser:

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

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

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

La 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 inicio de la ejecución. Estas variables se inicializarán primero, antes de la inicialización de cualquier variable de instancia.

  • Una única copia para ser compartida por todas las instancias de la clase.
  • Se puede acceder a una variable estática directamente por el nombre de la clase y no necesita ningún objeto

Sintaxis:

< class-name>. 

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

El 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).

  • Un método estático solo puede llamar a otros métodos estáticos y no puede llamar a un método no estático desde él.
  • Se puede acceder a un método estático directamente por el nombre de la clase y no necesita ningún objeto
  • Un método estático no puede hacer referencia a las palabras clave "this" o "super" de ninguna manera

Sintaxis:

< class-name>. 

Nota: el método principal es estático, ya que debe ser accesible para que se ejecute una aplicación, antes de que se lleve a cabo cualquier instanciación.

¡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

demostración de clase pública {public static void main (String args []) {Estudiante s1 = nuevo Estudiante ();s1.showData ();Estudiante s2 = nuevo Estudiante ();s2.showData ();//Estudiante.b++;//s1.showData ();}}clase Student {int a; // inicializado a cerostatic int b; // inicializado a cero solo cuando la clase se carga no para cada objeto creado.Estudiante(){// Constructor incrementando la variable estática bb ++;}public void showData () {System.out.println ("Valor de a =" + a);System.out.println ("Valor de b =" + b);}// incremento de vacío estático público () {// 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 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 n. ° 7 y 8. Guardar, compilar y ejecutar. Observa la salida.

Value of a = 0Value of b = 1Value of a = 0Value of b = 2Value of a = 0Value 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 " desde el método de clase estática de Java " incremento ".

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

El bloque estático es un bloque de declaración dentro de una clase 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

demostración de clase pública {static int a;static int b;static {a = 10;b = 20;}public static void main (String args []) {System.out.println ("Valor de a =" + a);System.out.println ("Valor de b =" + b);}}

obtendrá la siguiente salida del programa.

Value of a = 10Value of b = 20