Literales en Java. Variables y constantes en Java

En la primera parte de este tema estudiaremos los literales Java. Qué son los literales y para qué sirven. En la segunda parte estudiaremos dos conceptos muy importantes en programación como son las variables y las constantes.

LITERALES JAVA

Un literal Java es un valor de tipo entero, real, lógico, carácter, cadena de caracteres o un valor nulo (null) que puede aparecer dentro de un programa.
Por ejemplo: 150, 12.4, “ANA”, null, ‘t’.
Los literales suelen aparecer en la asignación de valores a las variables o formando parte de expresiones aritméticas o lógicas. Por ejemplo:
 
x = 25;
precio = 120.99;
mes = "enero";
descuento = precio - (precio * 5 / 100);
if(a > 3 && a < 5) 

Cuando se utilizan literales, es muy importante tener en cuenta que Java es un lenguaje fuertemente tipado,  esto quiere decir que realiza un control estricto de los tipos de datos que pueden contener las variables.
Por ejemplo, si una variable se ha declarado cono int no podremos asignarle un valor de tipo double.
int n = 2.5; //Esta asignación no es correcta y provocará un error.
Esta asignación provocaría un error ya que estamos asignando un valor no entero (2.5) a una variable declarada como int. Por lo tanto es muy importante saber de qué tipo es un literal para trabajar de forma correcta con ellos y no obtener resultados inesperados.
Los literales en Java se pueden ser:
  1. Literales de tipo entero
    • Literales en base decimal
    • Literales en binario
    • Literales en base octal
    • Literales en base hexadecimal
  2. Literales de tipo real
  3. Literales de tipo carácter
  4. Literales de cadenas de caracteres

1. LITERAL JAVA DE TIPO ENTERO

El tipo del literal entero es int a no ser que su valor absoluto sea mayor que el de un int ó que se se especifique el sufijo l (ele) ó L en cuyo caso será de tipo long.
El signo + al principio es opcional y el signo – será obligatorio si el número es negativo.
Los literales de tipo entero en Java puede expresarse de cuatro formas distintas: base decimal (base 10), binario (base 2), octal (base 8) y hexadecimal (base 16).

Literal Java de tipo entero en Base decimal
Está formado por 1 o más dígitos del 0 al 9.
El primer dígito debe ser distinto de cero.
Por ejemplo:
982                  literal entero de tipo int
-25                  literal entero de tipo int
+1200                literal entero de tipo int
1234                 literal entero de tipo int
1234L                literal entero de tipo long. El tipo long lo indica la L final.
123400000000         literal entero de tipo long. El valor del número supera el rango de un int

Literal Java de tipo entero en binario

Están formados por uno o más dígitos del 0 al 1.
Deben comenzar por 0b ó 0B.

Por ejemplo:

0b00100001             literal entero binario de tipo int
0B0010000101000101     literal entero binario de tipo int
0b1010000101000101101000010100010110100001010001011010000101000101L   literal entero binario de tipo long


Literal Java de tipo entero en Base octal
Está formado por 1 o más dígitos del 0 al 7.
El primer dígito debe ser cero.
Por ejemplo:
01234
025
Literal Java de tipo entero en Base hexadecimal
Está formado por 1 o más dígitos del 0 al 9 y letras de la A a la F (mayúsculas o minúsculas).
Debe comenzar por 0x ó 0X.
Por ejemplo:
0x1A2
0x430
0xf4


Los literales de tipo entero, en cualquier base, pueden contener el carácter _ para facilitar la lectura del número.
Por ejemplo:
2_014_120
1234_5678_9019_3456L
999_99_9999L
3.14_15F
0xFF_EC_DE_5E
0xCAFE_BABE
0x7fff_ffff_ffff_ffffL
0b0010_0101
0b11010010_01101001_10010100_10010010
Este carácter solo puede aparecer entre dígitos. 
El carácter _ no puede aparecer en los siguientes lugares:
  • Al principio o final de un número.
  • Junto a un punto decimal en un número de tipo real.
  • Antes de los sufijos F ó L.
  • Entre el 0X hexadecimal o el 0B binario
Ejemplos de literales Java válidos y no válidos que contienen el carácter _
3_.1415F                No Válido
3._1415F                No Válido
999_99_9999_L      No Válido
_52                        No Válido como literal. Válido como identificador
5_2                        Válido
52_                        No Válido
5_______2             Válido
0_x52                    No Válido
0x_52                    No Válido
0x5_2                    Válido
0x52_                    No Válido
0_52                      Válido
05_2                      Válido
052_                      No Válido

2. LITERAL JAVA DE TIPO REAL

Son números en base 10, que deben llevar un parte entera, un punto decimal y una parte fraccionaria.  Si la parte entera es cero, puede omitirse.
El signo + al principio es opcional y el signo – será obligatorio si el número es negativo.
Por ejemplo:
12.2303
-3.44
+10.33
0.456
.96
También pueden representarse utilizando la notación científica. En este caso se utiliza una E (mayúscula o minúscula) seguida del exponente (positivo o negativo). El exponente está formado por dígitos del 0 al 9.
Por ejemplo, el número en notación científica 14*10-3 se escribe: 14E-3
Más ejemplos de literal Java de tipo real:
2.15E2      -> 2.15 * 102
.0007E4     -> 0.0007 * 104
-50.445e-10 -> -50.445 * 10-10
El tipo de estos literales es siempre double, a no ser que se añada el sufijo F ó f para indicar que es float.
Por ejemplo:
2.15          literal real de tipo double
2.15F         literal real de tipo float
.23e5         literal real de tipo double
+74.336E-2F   literal real de tipo float
También se pueden utilizar los sufijos d ó D para indicar que el literal es de tipo double:
12.002d       literal real de tipo double


3. LITERAL JAVA DE TIPO CARÁCTER

Contiene un solo carácter encerrado entre comillas simples.
Es de tipo char.
Las secuencias de escape se consideran literales de tipo carácter.
Por ejemplo:
'a'
'4'
'\n'
'\u0061'

4. LITERAL JAVA DE CADENAS DE CARACTERES

Está formado por 0 ó más caracteres encerrados entre comillas dobles.
Pueden incluir secuencias de escape.
Por ejemplo:
“Esto es una cadena de caracteres”
“Pulsa \”C\” para continuar”
“”    -> cadena vacía
“T”   -> cadena de un solo carácter, es diferente a ‘t’ que es un carácter
Las cadenas de caracteres en Java son objetos de tipo String.

VARIABLES

Los datos que maneja un programa se almacenan en la memoria del ordenador. Para acceder a ellos se utiliza su dirección de memoria o posición dentro de la memoria donde se encuentra el dato.
Para facilitar la referencia a las posiciones de memoria, se puede sustituir la cadena binaria de ceros y unos que indica la dirección por un identificador.
Un identificador es el nombre que se le da a un componente dentro de un programa (una variable, una constante, un método, una clase, etc.).
Ejemplo de identificadores: nombre, matriculaAlumno, $suma5, año, etc.
Definición: Una variable es una zona de memoria que se referencia con un identificador, conocido como nombre de la variable, donde se almacena el valor de un dato que puede cambiar durante la ejecución del programa.
Una variable tiene tres características básicas:
  • Nombre o identificador de la variable.
  • Tipo. Conjunto de valores que puede tomar la variable (numérico, carácter, etc.).
  • Valor. Información que almacena.
Para poder utilizar una variable en un programa, primero tenemos que declararla.
Declarar una variable significa asignarle un nombre y un tipo.
Por ejemplo:
int a;   //declaramos la variable a de tipo int
char b; //declaramos la variable b de tipo char
También podemos asignarle un valor inicial a la variable cuando se declara:
int x = 5;   //declaramos la variable x de tipo int y le asignamos el valor 5
char caracter = 'b'; //declaramos la variable caracter de tipo char y le asignamos el valor 'b'
double altura = 6.25; // declaramos la variable altura de tipo double y le asignamos el valor 6.25
int contador = 0; //declaramos la variable contador de tipo int y le asignamos el valor 0
 
Importante: A las variables declaradas dentro de un método no se les asigna un valor por defecto. Es nuestra responsabilidad asignarles valores iniciales válidos.
int contador = 0; // declara la variable contador de tipo int y se le asigna el valor 0
Las variables que son atributos de una clase sí toman valores iniciales por defecto.
Veremos este tipo de variables más adelante cuando esudiemos las clases.
 

CONSTANTES

Un programa puede contener ciertos valores que no deben cambiar durante su ejecución. Estos valores se llaman constantes. 
Definición: Una constante es una zona de memoria que se referencia con un identificador, conocido como nombre de la constante, donde se almacena un valor que no puede cambiar durante la ejecución del programa.
Una constante en Java se declara de forma similar a una variable, anteponiendo la palabra final
Ejemplo:
final double PI = 3.141591;
final int diasSemana = 7;

11 comentarios:

  1. Aquí hay algo que se me escapa, es posible que se explique más adelante pero... ¿como hago para almacenar en una variable un numero por ejemplo octal?
    NumOctal = ????; // Entiendo que no puede ser así.

    ResponderEliminar
    Respuestas
    1. Rectifico en la declaración
      int NumOctal = ????; // Entiendo que no puede ser así.

      Eliminar
    2. Los valores enteros en octal y hexadecimal se almacenan igual que los valores en base decimal:
      int numOctal = 010; //8 en octal
      int numHexadecimal = 0xA; //10 en hexadecimal
      System.out.println(numOctal + numHexadecimal); //muestra 18

      Saludos y gracias por seguir el blog

      Eliminar
    3. porque el resultado sale 18???

      no se supone que tiene que dar 12 ??

      solo es una duda que tengo

      Eliminar
    4. No, octal son numeros del 0 al 7 ejemplo:
      0
      1
      2
      3
      4
      5
      6
      7
      10
      11
      12
      13
      14
      15
      16
      17
      20

      Eliminar
  2. recuerda que todas las constantes deben ir en mayúsculas por notación javabean de resto todo muy bien Saludos.

    ResponderEliminar
  3. Hola me pueden ayudar con estos:1) realizar un programa para determinar cuanto dinero ahorra una persona en un año, si considera que cada semana ahorra el 15% de su sueldo (considere 4semanas por mes y quo el sueldo no cambia en todo el año).
    2) un productor de leche lleva el registro de lo que produce en litros, pero cuando entrega, la paga en galones. Realizar un programa en java que ayude al productor a saber cuanto recibirá por la entrega de su producción por día (un galón = 3,785 litros)

    ResponderEliminar
    Respuestas
    1. Te dire la manera que he pensado para realizarlos:
      1) tendras la variable del sueldo mensual, a esa variable la divides entre 4(las 4 semanas) y al resultado de la division lo multiplicas por 0.15 y luego eso lo multiplicas x4 y ahi tienes el ahorro de un mes, y luego el ahorro del mes solo lo multiplicas x12 y ahi tendras el total del ahorro anual.
      2)aqui no hay una paga especifica por lo que la manera que le veo de hacerlo es convertir los litros a galones y es es todo creo(la conversion es tomar la cantidad de litros y dividirlo entre el valor de litros en galones:3.785)

      Eliminar