Introducción
En este laboratorio, exploraremos conceptos fundamentales de la programación en Java: variables y operadores. Aprenderemos cómo declarar diferentes tipos de variables, entender varios tipos de datos primitivos y trabajar con diversos operadores y expresiones. Esta experiencia práctica proporcionará una base sólida para los principiantes en la programación Java.
Comprendiendo Variables y Tipos de Datos
Las variables son ubicaciones de almacenamiento con nombre que contienen valores en la programación. Java ofrece varios tipos de datos primitivos, cada uno diseñado para almacenar tipos específicos de valores. Exploremos estos conceptos a través de ejemplos prácticos.
Primero, crearemos un archivo Java para demostrar la declaración y el uso de variables. En el WebIDE (que es similar a VS Code), crea un nuevo archivo llamado VariableDemo.java. Puedes hacer esto haciendo clic derecho en el panel del explorador de archivos, seleccionando "Nuevo archivo" e ingresando el nombre del archivo.
Copia y pega el siguiente código en el archivo:
public class VariableDemo {
public static void main(String[] args) {
// Declaring and initializing variables of different types
byte smallNumber = 127;
short mediumNumber = 32000;
int largeNumber = 2000000000;
long veryLargeNumber = 9000000000000000000L;
float decimalNumber = 3.14f;
double preciseDecimal = 3.14159265359;
char singleCharacter = 'A';
boolean isJavaFun = true;
// Printing the values
System.out.println("byte: " + smallNumber);
System.out.println("short: " + mediumNumber);
System.out.println("int: " + largeNumber);
System.out.println("long: " + veryLargeNumber);
System.out.println("float: " + decimalNumber);
System.out.println("double: " + preciseDecimal);
System.out.println("char: " + singleCharacter);
System.out.println("boolean: " + isJavaFun);
}
}
Analicemos este código para entenderlo mejor:
Comenzamos declarando una clase llamada
VariableDemo. En Java, cada programa debe tener al menos una clase.Dentro de la clase, tenemos el método
main. Este es el punto de entrada de nuestro programa Java, donde comienza la ejecución.Luego declaramos e inicializamos variables de diferentes tipos de datos primitivos:
byte: Se utiliza para valores enteros muy pequeños (-128 a 127)short: Se utiliza para valores enteros pequeños (-32,768 a 32,767)int: Se utiliza para valores enteros (aproximadamente -2 mil millones a 2 mil millones)long: Se utiliza para valores enteros muy grandes (aproximadamente -9 quintillones a 9 quintillones)float: Se utiliza para números decimales (precisión simple)double: Se utiliza para números decimales con mayor precisiónchar: Se utiliza para caracteres individualesboolean: Se utiliza para valores verdadero/falso
Observa el sufijo
Lpara el valorlongy el sufijofpara el valorfloat. Estos son necesarios para indicar a Java que estos literales deben tratarse comolongyfloatrespectivamente.Finalmente, imprimimos cada variable utilizando
System.out.println(). El operador+aquí se utiliza para la concatenación de cadenas, uniendo la cadena descriptiva con el valor de la variable.
Ahora, ejecutemos este programa. En el WebIDE, abre el panel del terminal y ejecuta el siguiente comando:
javac VariableDemo.java
java VariableDemo
Deberías ver una salida similar a esta en el panel de la consola:
byte: 127
short: 32000
int: 2000000000
long: 9000000000000000000
float: 3.14
double: 3.14159265359
char: A
boolean: true
Esta salida muestra los valores de cada variable que declaramos e inicializamos. Tómate un momento para verificar que cada valor impreso coincide con lo que asignamos en el código.
Trabajando con Operadores Aritméticos
Los operadores aritméticos en Java nos permiten realizar cálculos matemáticos. Creemos un nuevo archivo para demostrar estos operadores.
En el WebIDE, crea un nuevo archivo llamado ArithmeticDemo.java. Copia y pega el siguiente código:
public class ArithmeticDemo {
public static void main(String[] args) {
int a = 10;
int b = 3;
System.out.println("Addition: " + (a + b));
System.out.println("Subtraction: " + (a - b));
System.out.println("Multiplication: " + (a * b));
System.out.println("Division: " + (a / b));
System.out.println("Modulus: " + (a % b));
// Increment and decrement
int c = 5;
System.out.println("c before increment: " + c);
System.out.println("c after increment: " + (++c));
System.out.println("c after decrement: " + (--c));
}
}
Analicemos este código:
Declaramos dos variables enteras,
ayb, y les asignamos los valores 10 y 3 respectivamente.Luego realizamos varias operaciones aritméticas:
- Suma (
+): Suma dos números - Resta (
-): Resta el operando derecho del operando izquierdo - Multiplicación (
*): Multiplica dos números - División (
/): Divide el operando izquierdo por el operando derecho - Módulo (
%): Devuelve el resto cuando el operando izquierdo se divide por el operando derecho
- Suma (
También demostramos los operadores de incremento (
++) y decremento (--):++cincrementa el valor decen 1 antes de que se use en la expresión--cdecrementa el valor decen 1 antes de que se use en la expresión
Ejecuta este programa en el WebIDE. Deberías ver una salida similar a esta:
Addition: 13
Subtraction: 7
Multiplication: 30
Division: 3
Modulus: 1
c before increment: 5
c after increment: 6
c after decrement: 5
Ten en cuenta que cuando se dividen enteros (a / b), Java realiza una división entera, truncando cualquier parte decimal. Es por eso que 10 / 3 da como resultado 3, no 3.33333....
También, observa cómo los operadores de incremento y decremento afectan el valor de c. Comprender estos operadores es crucial para muchas tareas de programación, especialmente cuando se trabaja con bucles.
Comprendiendo Operadores a Nivel de Bits
Los operadores a nivel de bits en Java permiten manipular bits individuales en tipos enteros. Estos operadores se usan menos comúnmente en la programación diaria, pero son cruciales en ciertos escenarios, como trabajar con datos binarios o optimizar ciertos algoritmos.
En el WebIDE, crea un nuevo archivo llamado BitwiseDemo.java. Copia y pega el siguiente código:
public class BitwiseDemo {
public static void main(String[] args) {
int a = 60; // 60 = 0011 1100 in binary
int b = 13; // 13 = 0000 1101 in binary
System.out.println("a & b = " + (a & b)); // AND
System.out.println("a | b = " + (a | b)); // OR
System.out.println("a ^ b = " + (a ^ b)); // XOR
System.out.println("~a = " + (~a)); // NOT
System.out.println("a << 2 = " + (a << 2)); // Left Shift
System.out.println("a >> 2 = " + (a >> 2)); // Right Shift
}
}
Analicemos estas operaciones a nivel de bits:
AND (
&): Devuelve 1 si ambos bits son 1, de lo contrario 0.60 & 13=0011 1100 & 0000 1101=0000 1100(12 en decimal)
OR (
|): Devuelve 1 si al menos un bit es 1, de lo contrario 0.60 | 13=0011 1100 | 0000 1101=0011 1101(61 en decimal)
XOR (
^): Devuelve 1 si los bits son diferentes, 0 si son iguales.60 ^ 13=0011 1100 ^ 0000 1101=0011 0001(49 en decimal)
NOT (
~): Invierte todos los bits.~60=~0011 1100=1100 0011(-61 en decimal, debido a la representación en complemento a dos)
Desplazamiento a la Izquierda (
<<): Desplaza todos los bits hacia la izquierda por el número especificado de posiciones.60 << 2=0011 1100 << 2=1111 0000(240 en decimal)
Desplazamiento a la Derecha (
>>): Desplaza todos los bits hacia la derecha por el número especificado de posiciones.60 >> 2=0011 1100 >> 2=0000 1111(15 en decimal)
Ejecuta este programa en el WebIDE. Deberías ver una salida similar a esta:
a & b = 12
a | b = 61
a ^ b = 49
~a = -61
a << 2 = 240
a >> 2 = 15
Comprender los operadores a nivel de bits puede ser difícil al principio, pero son muy poderosos para ciertos tipos de operaciones, especialmente cuando se trabaja con programación de bajo nivel o se optimiza el código para mejorar el rendimiento.
Explorando Operadores Lógicos
Los operadores lógicos en Java se utilizan para realizar operaciones lógicas en valores booleanos. Estos operadores son esenciales para crear condiciones complejas en tus programas.
En el WebIDE, crea un nuevo archivo llamado LogicalDemo.java. Copia y pega el siguiente código:
public class LogicalDemo {
public static void main(String[] args) {
boolean a = true;
boolean b = false;
System.out.println("a && b = " + (a && b)); // Logical AND
System.out.println("a || b = " + (a || b)); // Logical OR
System.out.println("!a = " + (!a)); // Logical NOT
// Short-circuit evaluation
int x = 5;
int y = 10;
System.out.println("x < 0 && y++ > 5 = " + (x < 0 && y++ > 5));
System.out.println("y after evaluation: " + y);
}
}
Analicemos estas operaciones lógicas:
AND (
&&): Devuelvetruesi ambos operandos sontrue, de lo contrariofalse.true && false=false
OR (
||): Devuelvetruesi al menos un operando estrue, de lo contrariofalse.true || false=true
NOT (
!): Invierte el valor booleano.!true=false
Evaluación de cortocircuito: En la expresión
x < 0 && y++ > 5, Java primero evalúax < 0. Dado que esto esfalse, no se molesta en evaluar la segunda parte (y++ > 5), porque el resultado general debe serfalseindependientemente. Es por eso queysigue siendo 10 después de la evaluación.
Ejecuta este programa en el WebIDE. Deberías ver una salida similar a esta:
a && b = false
a || b = true
!a = false
x < 0 && y++ > 5 = false
y after evaluation: 10
Comprender los operadores lógicos es crucial para crear condiciones en tus programas, como en las declaraciones if o los bucles while. El comportamiento de cortocircuito de && y || también se puede utilizar para optimizar tu código en ciertas situaciones.
Poniendo Todo Juntos
Ahora que hemos explorado varios tipos de operadores, creemos un programa de calculadora simple que utilice múltiples tipos de operadores. Esto ayudará a reforzar lo que hemos aprendido y mostrará cómo se pueden aplicar estos conceptos en un escenario práctico.
En el WebIDE, crea un nuevo archivo llamado SimpleCalculator.java. Copia y pega el siguiente código:
public class SimpleCalculator {
public static void main(String[] args) {
int a = 10;
int b = 5;
// Arithmetic operations
System.out.println("Arithmetic Operations:");
System.out.println("a + b = " + (a + b));
System.out.println("a - b = " + (a - b));
System.out.println("a * b = " + (a * b));
System.out.println("a / b = " + (a / b));
System.out.println("a % b = " + (a % b));
// Bitwise operations
System.out.println("\nBitwise Operations:");
System.out.println("a & b = " + (a & b));
System.out.println("a | b = " + (a | b));
System.out.println("a ^ b = " + (a ^ b));
System.out.println("~a = " + (~a));
// Logical operations
boolean x = a > b;
boolean y = a < b;
System.out.println("\nLogical Operations:");
System.out.println("x && y = " + (x && y));
System.out.println("x || y = " + (x || y));
System.out.println("!x = " + (!x));
// Combining operations
System.out.println("\nCombined Operations:");
System.out.println("(a + b) * 2 = " + ((a + b) * 2));
System.out.println("(a > b) && (a % b == 0) = " + ((a > b) && (a % b == 0)));
}
}
Analicemos este código y expliquemos cada parte:
Operaciones Aritméticas:
- Realizamos operaciones aritméticas básicas (suma, resta, multiplicación, división y módulo) en
ayb. - Estas operaciones demuestran cómo usar los operadores aritméticos que aprendimos anteriormente.
- Realizamos operaciones aritméticas básicas (suma, resta, multiplicación, división y módulo) en
Operaciones a Nivel de Bits:
- Realizamos operaciones a nivel de bits AND, OR, XOR y NOT en
ayb. - Estas operaciones muestran cómo funcionan los operadores a nivel de bits en las representaciones binarias de enteros.
- Realizamos operaciones a nivel de bits AND, OR, XOR y NOT en
Operaciones Lógicas:
- Creamos dos variables booleanas,
xey, basadas en comparaciones entreayb. - Luego demostramos operaciones lógicas AND, OR y NOT en estos valores booleanos.
- Creamos dos variables booleanas,
Operaciones Combinadas:
- Mostramos cómo se pueden combinar diferentes tipos de operadores en expresiones más complejas.
(a + b) * 2demuestra el uso de paréntesis para controlar el orden de las operaciones.(a > b) && (a % b == 0)combina una comparación, una operación de módulo y un AND lógico.
Ejecuta este programa en el WebIDE. Deberías ver una salida similar a esta:
Arithmetic Operations:
a + b = 15
a - b = 5
a * b = 50
a / b = 2
a % b = 0
Bitwise Operations:
a & b = 0
a | b = 15
a ^ b = 15
~a = -11
Logical Operations:
x && y = false
x || y = true
!x = false
Combined Operations:
(a + b) * 2 = 30
(a > b) && (a % b == 0) = true
Esta salida demuestra cómo funciona cada tipo de operador:
- Las operaciones aritméticas producen los resultados matemáticos esperados.
- Las operaciones a nivel de bits muestran los resultados de manipular las representaciones binarias de
ayb. - Las operaciones lógicas muestran cómo se pueden combinar valores booleanos.
- Las operaciones combinadas demuestran cómo se pueden crear expresiones más complejas utilizando múltiples tipos de operadores.
Comprender cómo combinar estos operadores es crucial para escribir programas Java más complejos y eficientes. A medida que avances en tu aprendizaje de Java, encontrarás que utilizas estos operadores en diversas combinaciones para resolver problemas cada vez más complejos.
Resumen
En este laboratorio, exploramos conceptos fundamentales de la programación en Java: variables y operadores. Aprendimos cómo declarar y usar diferentes tipos de variables, incluyendo tipos de datos primitivos como int, boolean y char. Luego, profundizamos en varios operadores en Java:
- Operadores aritméticos para cálculos matemáticos básicos
- Operadores a nivel de bits para manipular bits individuales en tipos enteros
- Operadores lógicos para trabajar con valores booleanos
A través de ejemplos prácticos, vimos cómo se pueden usar estos operadores individualmente y en combinación para realizar una amplia gama de operaciones. Creamos un programa de calculadora simple que demostró el uso de múltiples tipos de operadores en una sola aplicación.



