Hay tres tipos de variables en Java :
- Variables locales
- Variables de instancia
- Variables estáticas
Las variables locales y las variables de instancia se denominan juntas variables no estáticas. Por lo tanto, también se puede decir que las variables de Java se pueden dividir en 2 categorías:
- Variables estáticas: cuando una variable se declara como estática, se crea una sola copia de la variable y se comparte entre todos los objetos a nivel de clase. Las variables estáticas son, esencialmente, variables globales. Todas las instancias de la clase comparten la misma variable estática.
Puntos importantes para las variables estáticas: –
- Podemos crear variables estáticas solo a nivel de clase. Ver aquí
- El bloque estático y las variables estáticas se ejecutan en el orden en que están presentes en un programa.
A continuación se muestra el programa Java para demostrar que el bloque estático y las variables estáticas se ejecutan en el orden en que están presentes en un programa.
// Java program to demonstrate execution
// of static blocks and variables
class
Test {
// static variable
static
int
a = m1();
// static block
static
{
System.out.println(
"Inside static block"
);
}
// static method
static
int
m1()
{
System.out.println(
"from m1"
);
return
20
;
}
// static method(main !!)
public
static
void
main(String[] args)
{
System.out.println(
"Value of a : "
+ a);
System.out.println(
"from main"
);
}
}
Producción:
from m1 Inside static block Value of a : 20 from main
- Variable no estática
- Variables locales : una variable definida dentro de un bloque, método o constructor se denomina variable local.
- Estas variables se crean cuando se ingresa el bloque o se llama a la función y se destruye después de salir del bloque o cuando la llamada regresa de la función.
- El alcance de estas variables existe solo dentro del bloque en el que se declara la variable. es decir, podemos acceder a estas variables solo dentro de ese bloque.
- La inicialización de la variable local es obligatoria.
- Variables de instancia: las variables de instancia son variables no estáticas y se declaran en una clase fuera de cualquier método, constructor o bloque.
- Como las variables de instancia se declaran en una clase, estas variables se crean cuando se crea un objeto de la clase y se destruyen cuando se destruye el objeto.
- A diferencia de las variables locales, podemos usar especificadores de acceso para variables de instancia. Si no especificamos ningún especificador de acceso, se utilizará el especificador de acceso predeterminado.
- La inicialización de la variable de instancia no es obligatoria. Su valor por defecto es 0
- Solo se puede acceder a la variable de instancia mediante la creación de objetos.
Ejemplo :
// Java program to demonstrate
// non-static variables
class
GfG {
// non-static variable
int
rk =
10
;
public
static
void
main(String[] args)
{
// Instance created inorder to access
// a non static variable.
Gfg f =
new
Gfg();
System.out.println(
"Non static variable"
+
" accessed using instance"
+
" of a class"
);
System.out.println(
"Non Static variable "
+ f.rk);
}
}
Producción:Non static variable accessed using instance of a class. Non Static variable 10
- Variables locales : una variable definida dentro de un bloque, método o constructor se denomina variable local.
Las principales diferencias entre variables estáticas y no estáticas son:
variable estática | Variable no estática |
---|---|
Se puede acceder a las variables estáticas usando el nombre de la clase | Se puede acceder a las variables no estáticas usando la instancia de una clase |
Se puede acceder a las variables estáticas mediante métodos estáticos y no estáticos | No se puede acceder a las variables no estáticas dentro de un método estático. |
Las variables estáticas reducen la cantidad de memoria utilizada por un programa. | Las variables no estáticas no reducen la cantidad de memoria utilizada por un programa |
Las variables estáticas se comparten entre todas las instancias de una clase. | Las variables no estáticas son específicas de esa instancia de una clase. |
La variable estática es como una variable global y está disponible para todos los métodos. | La variable no estática es como una variable local y se puede acceder a ella solo a través de una instancia de una clase. |
Publicación traducida automáticamente
Artículo escrito por bestharadhakrishna y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA