Java - Tipos de variables
Una variable nos proporciona almacenamiento con nombre que nuestros programas pueden manipular. Cada variable en Java tiene un tipo específico, que determina el tamaño y el diseño de la memoria de la variable; el rango de valores que se pueden almacenar dentro de esa memoria; y el conjunto de operaciones que se pueden aplicar a la variable.
Debe declarar todas las variables antes de poder utilizarlas. La siguiente es la forma básica de una declaración de variable −
data type variable [ = value][, variable [ = value] ...] ;
Aquí tipo de datos es uno de los tipos de datos de Java y variable es el nombre de la variable. Para declarar más de una variable del tipo especificado, puede usar una lista separada por comas.
Los siguientes son ejemplos válidos de declaración e inicialización de variables en Java −
Ejemplo
int a, b, c; // Declares three ints, a, b, and c. int a = 10, b = 10; // Example of initialization byte B = 22; // initializes a byte type variable B. double pi = 3.14159; // declares and assigns a value of PI. char a = 'a'; // the char variable a iis initialized with value 'a'
Este capítulo explicará varios tipos de variables disponibles en el lenguaje Java. Hay tres tipos de variables en Java −
- Variables locales
- Variables de instancia
- Clase/Variables estáticas
Variables locales
-
Las variables locales se declaran en métodos, constructores o bloques.
-
Las variables locales se crean cuando se ingresa el método, constructor o bloque y la variable se destruirá una vez que salga del método, constructor o bloque.
-
Los modificadores de acceso no se pueden usar para variables locales.
-
Las variables locales solo son visibles dentro del método, constructor o bloque declarado.
-
Las variables locales se implementan internamente a nivel de pila.
-
No hay un valor predeterminado para las variables locales, por lo que las variables locales deben declararse y debe asignarse un valor inicial antes del primer uso.
Ejemplo
Aquí, edad es una variable local. Esto se define dentro de pupAge() y su alcance se limita solo a este método.
Demostración en vivopublic class Test { public void pupAge() { int age = 0; age = age + 7; System.out.println("Puppy age is : " + age); } public static void main(String args[]) { Test test = new Test(); test.pupAge(); } }
Esto producirá el siguiente resultado −
Salida
Puppy age is: 7
Ejemplo
El siguiente ejemplo usa edad sin inicializarlo, por lo que daría error a la hora de compilar.
Demostración en vivopublic class Test { public void pupAge() { int age; age = age + 7; System.out.println("Puppy age is : " + age); } public static void main(String args[]) { Test test = new Test(); test.pupAge(); } }
Esto producirá el siguiente error al compilarlo −
Salida
Test.java:4:variable number might not have been initialized age = age + 7; ^ 1 error
Variables de instancia
-
Las variables de instancia se declaran en una clase, pero fuera de un método, constructor o cualquier bloque.
-
Cuando se asigna un espacio para un objeto en el montón, se crea una ranura para cada valor de variable de instancia.
-
Las variables de instancia se crean cuando se crea un objeto con el uso de la palabra clave 'nuevo' y se destruyen cuando se destruye el objeto.
-
Las variables de instancia contienen valores que deben ser referenciados por más de un método, constructor o bloque, o partes esenciales del estado de un objeto que deben estar presentes en toda la clase.
-
Las variables de instancia se pueden declarar en el nivel de clase antes o después de su uso.
-
Se pueden dar modificadores de acceso para las variables de instancia.
-
Las variables de instancia son visibles para todos los métodos, constructores y bloques de la clase. Normalmente, se recomienda hacer que estas variables sean privadas (nivel de acceso). Sin embargo, se puede dar visibilidad a las subclases de estas variables con el uso de modificadores de acceso.
-
Las variables de instancia tienen valores predeterminados. Para números, el valor predeterminado es 0, para booleanos es falso y para referencias a objetos es nulo. Los valores se pueden asignar durante la declaración o dentro del constructor.
-
Se puede acceder a las variables de instancia directamente llamando al nombre de la variable dentro de la clase. Sin embargo, dentro de los métodos estáticos (cuando las variables de instancia tienen accesibilidad), deben llamarse utilizando el nombre completo. ObjectReference.VariableName .
Ejemplo
Demostración en vivoimport java.io.*; public class Employee { // this instance variable is visible for any child class. public String name; // salary variable is visible in Employee class only. private double salary; // The name variable is assigned in the constructor. public Employee (String empName) { name = empName; } // The salary variable is assigned a value. public void setSalary(double empSal) { salary = empSal; } // This method prints the employee details. public void printEmp() { System.out.println("name : " + name ); System.out.println("salary :" + salary); } public static void main(String args[]) { Employee empOne = new Employee("Ransika"); empOne.setSalary(1000); empOne.printEmp(); } }
Esto producirá el siguiente resultado −
Salida
name : Ransika salary :1000.0
Clase/Variables estáticas
-
Las variables de clase, también conocidas como variables estáticas, se declaran con la palabra clave static en una clase, pero fuera de un método, constructor o bloque.
-
Solo habría una copia de cada variable de clase por clase, independientemente de cuántos objetos se creen a partir de ella.
-
Las variables estáticas rara vez se usan aparte de declararse como constantes. Las constantes son variables que se declaran como públicas/privadas, finales y estáticas. Las variables constantes nunca cambian de su valor inicial.
-
Las variables estáticas se almacenan en la memoria estática. Es raro usar variables estáticas que no sean declaradas finales y usadas como constantes públicas o privadas.
-
Las variables estáticas se crean cuando el programa se inicia y se destruyen cuando el programa se detiene.
-
La visibilidad es similar a las variables de instancia. Sin embargo, la mayoría de las variables estáticas se declaran públicas ya que deben estar disponibles para los usuarios de la clase.
-
Los valores predeterminados son los mismos que las variables de instancia. Para números, el valor predeterminado es 0; para booleanos, es falso; y para referencias a objetos, es nulo. Los valores se pueden asignar durante la declaración o dentro del constructor. Además, los valores se pueden asignar en bloques especiales de inicialización estática.
-
Se puede acceder a las variables estáticas llamando con el nombre de clase ClassName.VariableName .
-
Cuando se declaran variables de clase como finales estáticas públicas, los nombres de las variables (constantes) están todos en mayúsculas. Si las variables estáticas no son públicas y definitivas, la sintaxis de nomenclatura es la misma que la de las variables locales y de instancia.
Ejemplo
Demostración en vivoimport java.io.*; public class Employee { // salary variable is a private static variable private static double salary; // DEPARTMENT is a constant public static final String DEPARTMENT = "Development "; public static void main(String args[]) { salary = 1000; System.out.println(DEPARTMENT + "average salary:" + salary); } }
Esto producirá el siguiente resultado −
Salida
Development average salary:1000
Nota − Si se accede a las variables desde una clase externa, se debe acceder a la constante como Empleado.DEPARTAMENTO
¿Qué sigue?
Ya ha utilizado modificadores de acceso (público y privado) en este capítulo. El siguiente capítulo explicará en detalle los modificadores de acceso y los modificadores que no son de acceso.
Java
- Variables de C# y tipos de datos (primitivos)
- C Variables, constantes y literales
- Clase de almacenamiento C
- Variables y literales de Java
- Tipos de datos Java (primitivos)
- Operadores Java
- Interfaz Java
- Prueba de Java con recursos
- Anotaciones Java
- Tipos de anotación de Java
- Variables y tipos de C++:int, double, char, string, bool