Actualmente, la programación es una habilidad que te abre las puertas de un mundo laboral basto, interesante y lleno de oportunidades de crecimiento personal e innovación que avanza a un ritmo tan acelerado, que es difícil acostumbrarse.
Todo tiene un comienzo, y la programación no es la excepción. En este tema aprenderás los conceptos fundamentales que te introducirán a este campo del conocimiento, así como las estructuras más elementales para el manejo de la información y las operaciones que se pueden realizar con ellas.
Variables, constantes y tipos de datos
Variables
De acuerdo con Boyarsky (2020), una variable es el nombre que se le da a un espacio de memoria que almacena datos. Una variable es la unidad mínima de información dentro de un programa, esta almacenará únicamente un dato y el conjunto de estas, así como su procesamiento dará como resultado información útil para el usuario de la aplicación.
Con base en lo anterior, es importante conocer el funcionamiento de las variables, además de cómo declararlas y alterar sus valores.
La declaración de una variable consiste en el tipo de dato, seguido del nombre de la variable.
String saludo; double dollar; |
Tabla 1. Declaración de variables en Java.
Recuerda que este nombre te permitirá identificar el dato que se almacena, por lo que se recomienda ampliamente usar nombres descriptivos que den una idea clara y rápida a cualquier lector sobre el contenido de esta.
Una vez declaradas las variables, es posible asignarles un valor. La primera vez que se les asigna un valor se llama inicialización.
En Java, para Boyarsky (2020), al asignarle un valor a una variable se debe poner el nombre de la variable seguido del signo "=" (igual), posteriormente un valor que corresponda con el tipo de dato asignado y finalizando la línea con un ";" (punto y coma).
saludo = "hola mundo"; dolar = 19.5; |
Tabla 2. Inicialización de variables en Java.
Es importante destacar que el signo "=" (igual) es conocido como operador de asignación y no debe confundirse con el uso que se le da dentro de las matemáticas, donde indica "igualdad" entre los elementos de ambos lados. En el caso de la programación, indica que el valor a la derecha del operador ("=" símbolo de igual) se almacenará en el espacio de memoria identificado con la variable que está al lado izquierdo del mismo.
De esta manera, la expresión "dolar = 19.5" indica que la variable "dolar" almacenará el valor "19.5".
Es importante que sepas que una práctica común consiste en realizar la inicialización de una variable dentro de la misma línea en la que ocurre la declaración.
String saludo = "hola mundo"; double dolar = 19.5; |
Tabla 3. Inicialización de variables en la misma línea de declaración en Java.
Identificadores
A los nombres de las variables también se les conoce como identificadores, y existen algunas reglas adicionales que se deben cumplir para nombrar a una variable en Java (Cosmina, 2018):
Asimismo, es altamente recomendable seguir el estilo camelCase o "escritura de camello" (por su similitud a las jorobas de este animal), que consiste en escribir nombres de más de una palabra, evitando los espacios e iniciando cada palabra con una letra mayúscula.
String saludoHolaMundo = "Hola mundo!"; |
Tabla 4. Declaración de variable con nombre tipo camelCase.
Constantes
Como su nombre sugiere, las "variables" corresponden con datos cuyos valores pueden ser alterados a lo largo del curso del programa. Sin embargo, existen valores cuyo valor se sabe (y muchas veces se requiere) que permanecerá constante. Para declarar este tipo especial se debe agregar la palabra reservada final que indica al programa, así como al lector del código que dicho valor no podrá alterarse durante el periodo de vida del programa.
final double PI = 3.14; |
Tabla 5. Declaración de constantes en Java.
Intentar asignar un nuevo valor a una constante causará que el programa no pueda iniciar debido a un error de compilación.
Imagen 1. Ejemplo de error de compilación al asignar un segundo valor a una constante en Java.
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.
Tipos de datos
El tipo de dato de una variable describe el tipo de valor que esta almacenará, estos pueden ser valores numéricos, valores de verdadero o falso y letras, así como tipos definidos por el programador.
En Java existen dos grupos de tipos de datos según Boyarsky (2020): los llamados tipos primitivos y los tipos de referencia.
Los tipos de datos primitivos son ocho y se pueden ver en la siguiente tabla:
Tabla 6. Tipos de datos en Java.
De la tabla anterior se puede resaltar más información:
Formato numérico
En Java es posible separar los dígitos de un número con guion bajo (_) para mayor legibilidad, siempre y cuando el número no comience o termine con dicho guion, o esté junto a un punto decimal.
Los siguientes ejemplos muestran más claramente lo anterior:
double guionInicio = _1; // error double guinFinal = 1_; // error double guionPunto = 1_.234 // error double guionPuntoCorrecto = 1_0.0_32; // funciona double guionCentenas = 1_000_000.000_32;// funciona |
Tabla 7. Ejemplos de literales numéricos.
Tipos de datos por referencia
El primer tipo que encontramos en esta categoría es String, que se trata de un tipo especial proporcionado por el lenguaje para el manejo de cadenas de caracteres.
Los caracteres pueden ser aquellos disponibles dentro de la tabla de valores Unicode y deben estar encerrados entre comillas dobles. Ver la tabla 4.
Después se encuentra cualquier tipo de dato descrito dentro del Java SE Documentation (2021), aquí encontrarás tipos de datos llamados "clases" y cada uno está descrito junto con el detalle de su funcionalidad.
Diferencias entre tipos primitivos y tipos de referencia
Para entender la diferencia, primero necesitas comprender cómo se almacenan en la memoria.
Existen, de manera general, dos espacios de memoria para un programa de acuerdo con Cosmina (2018). El primero es de fácil acceso y se llama memoria de pila o stack memory (por su nombre en inglés); este tiene la característica de tener espacios contiguos en donde se almacenan los valores de los datos.
Este espacio de memoria tiene un tamaño más reducido, pero es de rápido acceso para el programa. Las variables de tipo primitivo almacenan su valor directamente en este espacio, de manera que su lectura es inmediata.
Se tiene, además, un segundo espacio de memoria al que conocemos por su nombre en inglés heap memory. Cuando se crea un valor para una variable de referencia, dicho valor se almacena en este espacio.
Este espacio tiene como característica que no existen lugares previamente creados como en el stack memory, por lo que para almacenar cada valor se reserva un espacio suficientemente grande para contener dicho valor y posteriormente se asigna la dirección de la memoria del espacio reservado a la variable de referencia, y es finalmente el valor de la dirección de memoria el que se almacena en el stack memory asociado con la variable como se puede observar en la siguiente imagen.
Imagen 2. Representación gráfica de la stack memory y la heap memory.
Así podemos decir, de manera general, que las variables de tipo primitivo son aquellas que almacenan directamente su valor, mientras que las variables de referencia almacenan la dirección de memoria donde se ubica el valor real.
Operaciones aritméticas, lógicas y relacionales
Operaciones
Un operador, según Boyarsky (2020), es un símbolo especial que puede ser aplicado a un grupo de variables (que se conocen como operandos) y que devuelven algún resultado; a esto le llamamos operación.
En Java cuentas con diferentes tipos de operadores según el tipo de dato con el que trabajan (aritméticos, lógicos y relacionales), así como por la cantidad de operandos que soportan (unarios, binarios, terciarios).
Precedencia de operadores
Cuando una expresión contiene más de un operador, se resuelve regularmente de izquierda a derecha, sin embargo, existen algunos operadores que se resuelven primero, lo que puede alterar el resultado de la operación. El orden en el cual se resuelven las diferentes operaciones de una expresión es conocido como precedencia de operadores.
La siguiente tabla muestra los diferentes operadores disponibles, ordenados por la precedencia que tienen dentro del lenguaje:
Operadores unarios
Tabla 8. Operadores unarios en Java.
Operadores binarios
Tabla 9. Operadores binarios en Java.
Operadores ternarios
Tabla 10. Operadores ternarios en Java.
Operadores de asignación
Tabla 11. Operadores de asignación en Java.
El almacenamiento y el manejo de los datos son la "piedra angular" de cualquier programa, por lo que es de gran relevancia conocer sus formas más elementales, ya que a partir de esto se construyen los conocimientos más complejos.
¿Te parecen suficientes los tipos de datos mostrados?
¿Qué otra manera de almacenar los datos podrías usar?
Los tipos de datos básicos son solamente el punto de partida, debido a que se pueden expandir y personalizar como tú lo necesites. Este aprendizaje te dará herramientas para mejorar tu desempeño como programador.
Asegúrate de: