GeeksforGeeks

Requisito : variables estáticas, palabra clave final

Variable estática: Cuando el valor de una variable no varía, entonces no es una buena opción acudir a la variable de instancia. En ese momento podemos añadir el modificador static a esa variable. Cuando declaramos una variable como estática, entonces a nivel de clase se crea una única variable que se comparte con los objetos. Cualquier cambio en esa variable estática se refleja en las operaciones de los otros objetos. Si no vamos a inicializar una variable estática, entonces por defecto JVM proporcionará un valor por defecto para la variable estática.

Pero cuando declaramos una variable estática con modificador final entonces debemos tener cuidado de las siguientes convenciones:

  • Declarar las variables sólo como estáticas puede llevar a cambiar sus valores por una o más instancias de una clase en la que se declara.
  • Declararlas como estáticas finales le ayudará a crear una CONSTANTE. Sólo existe una copia de la variable que no puede ser reinicializada.

Puntos importantes sobre la variable estática final:

  1. Inicialización de la variable Obligatoria : Si la variable estática declarada como final, entonces tenemos que realizar la inicialización explícitamente si estamos usando o no y JVM no proporcionará ningún valor por defecto para la variable estática final.

    class Test {
    final static int x;
    public static void main(String args)
    {
    }
    }

    
    

    
    

    Salida:

    error: variable x not initialized in the default constructor
  2. Inicialización antes de la carga de la clase : Para la variable estática final, es obligatorio que realicemos la inicialización antes de la finalización de la carga de la clase. Podemos inicializar una variable estática final en el momento de la declaración.

    class Test {
    final static int x = 10;
    public static void main(String args)
    {
    System.out.println(x);
    }
    }

    
    

    
    

    Salida:

    10
  3. Inicializar dentro de un bloque estático : También podemos inicializar una variable estática final dentro de un bloque estático porque debemos inicializar una variable estática final antes de la clase y sabemos que el bloque estático se ejecuta antes del método main().

    class Test {
    final static int x;
    static
    {
    x = 10;
    }
    public static void main(String args)
    {
    System.out.println(x);
    }
    }

    
    

    
    

    Salida:

    10

Aparte de los métodos mencionados, si intentamos inicializar una variable estática final en cualquier otro lugar entonces obtendremos un error en tiempo de compilación.

class Test {
final static int x;
public static void m()
{
x = 10;
}
public static void main(String args)
{
System.out.println(x);
}
}



Salida:

error: cannot assign a value to final variable x

Implementación de la variable estática final

class MainClass {
. final static String company = "GFG";
String name;
int rollno;
public
static void main(String args)
{
MainClass ob = new MainClass();
ob.company = "Geeksforgeeks";
ob.name = "Bishal";
ob.rollno = 007;
System.out.println(ob.company);
System.out.println(ob.name);
System.out.println(ob.rollno);
}
}



Salida:

error: cannot assign a value to final variable company

Este artículo es una contribución de Bishal Kumar Dubey. Si te gusta GeeksforGeeks y quieres contribuir, también puedes escribir un artículo en contribute.geeksforgeeks.org o enviarlo por correo a [email protected]. Verás cómo tu artículo aparece en la página principal de GeeksforGeeks y ayudarás a otros Geeks.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.