English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Variables estáticas-Las variables estáticas también se conocen como variables de clase. Puede declarar una variable estática utilizando la palabra clave. Una vez declarada una variable estática, solo habrá una copia en la clase, independientemente de cuántos objetos se creen en la clase.
public static int num =; 39;
Variables de instancia-Estas variables pertenecen a la instancia de la clase (objeto). Estas se declaran dentro de la clase pero fuera de los métodos. Se inicializan cuando se instancia la clase. Se pueden acceder a ellos desde cualquier método, constructor o bloque específico de la clase.
Debe usar el objeto para acceder a las variables de instancia. Es decir, para acceder a las variables de instancia, debe crear un objeto de la clase y usar ese objeto, debe acceder a estas variables.
final-Después de declarar una variable final, no se puede reasignar.
Las variables finales sin inicializar se denominan variables finales vacías. Al igual que las variables de instancia, las variables finales no se inicializarán con un valor por defecto. Por lo tanto,Es necesario inicializar las variables finales después de declararlas..
Sin embargo, si intenta usar una variable vacía en el código, se generará un error en tiempo de compilación.
En el siguiente programa Java, la clase Student contiene dos variables finales name y age, y aún no se han inicializado.
public class Student { public final String name; public final int age; public void display(){ System.out.println("Nombre del Estudiante: ");+this.name); System.out.println("Edad del Estudiante: ")}+this.age); } public static void main(String args[]) { new Student().display(); } }
Durante la compilación, el programa producirá los siguientes errores.
Student.java:3: error: la variable name no está inicializada en el constructor por defecto private final String name; ^ Student.java:4: error: la variable age no está inicializada en el constructor por defecto private final int age; ^ 2 errores
Para resolver este problema, necesita inicializar las variables finales declaradas.-
public class Student { public final String name; public final int age; public Student(){ this.name = "Raju"; this.age =; 20; } public void display(){ System.out.println("Nombre del Estudiante: ");+this.name ); System.out.println("Edad del Estudiante: ")}+this.age ); } public static void main(String args[]) { new Student().display(); } }
Resultado de salida
Nombre del Estudiante: Raju Edad del Estudiante: 20
De la misma manera, si declara una variable estática final sin inicializarla, se considera una variable estática final.
Cuando una variable se declara como variable estática y final, solo se puede inicializar en el bloque estático. Si intenta inicializarla en otro lugar, el compilador asume que está intentando reasignar su valor y genera un error en tiempo de compilación.-
class Data{ static final int num; Data(int i){ num = i; } } public class ConstantsExample { public static void main(String args[]) { System.out.println("valor de la constante: ");+Data.num); } }
ConstantsExample.java:4: error: no se puede asignar un valor a una variable final num num = i; ^ 1 error
Por lo tanto, debe inicializar la variable final estática en el bloque estático.
Para que el programa anterior funcione correctamente, debe inicializar la variable final estática en el bloque estático.-
class Data{ static final int num; static{ num = 1000; } } public class ConstantsExample { public static void main(String args[]) { System.out.println("valor de la constante: ");+Data.num); } }
Resultado de salida
valor de la constante: 1000