Saltar al contenido principal

Primeros pasos en Java

Hola Skilly

Vamos a ver todas las partes de un programa .java.

El siguiente código imprime la frase "Hola Skilly" en la consola.

public class HolaMundo {
public static void main(String[] args) {
// Esto es un comentario. El programa comienza ejecutando el método 'main'.

// La siguiente línea imprime "Hola Skilly" en la consola.
System.out.println("Hola Skilly");
}
}
  • public class HolaMundo: Esta línea define una clase llamada "HolaMundo". En Java, cada programa comienza con al menos una clase. El nombre de la clase debe coincidir con el nombre del archivo Java que contiene el código fuente.
  • {: Esto marca el comienzo del cuerpo de la clase.
  • public static void main(String[] args) {: Aquí definimos un método llamado "main". El método "main" es el punto de entrada de un programa Java. Debe tener exactamente esta firma y estructura para que Java lo reconozca como punto de entrada. Los detalles de los argumentos (String[] args) se explicarán más adelante en programas más complejos. De momento basta con saber que "siempre se escribe lo mismo".
  • // Esto es un comentario.: Los comentarios comienzan con // y se ignoran durante la ejecución. Te ayudan a poner apuntes en tu código.
  • System.out.println("Hola Skilly");: Esta línea imprime el mensaje "Hola Skilly" en la consola. System.out se refiere a la consola y println es un método que imprime una línea de texto en la consola. "Hola Skilly" es el mensaje que se imprimirá.
  • }: Esto marca el final del cuerpo del método "main"
  • }: Esto marca el final del cuerpo de la clase.

⚠️ ADVERTENCIA Todas las líneas de Java tienen que terminar en ; para indicar que acaba la instrucción

En definitiva, ésta sería la estructura básica de cualquier archivo java:

public class NombreArchivo {
public static void main(String[] args) {
// Aquí va el código de tu programa, es decir, qué quiero que haga.
// Podremos poner tantas acciones o líneas de código como queramos.

}
}

Tipos de datos

En Java, los tipos de datos se utilizan para definir el tipo de valor que una variable puede contener. Los tipos de datos se dividen en dos categorías principales: tipos de datos primitivos y tipos de datos de objeto.

Tipo de DatoDescripciónEjemplo
intNúmero enteroint edad = 30;
doubleNúmero de punto flotantedouble salario = 1500.50;
booleanValor verdadero o falsoboolean esMayor = true;
charCarácter individualchar letra = 'A';
StringCadena de caracteresString nombre = "Juan";
longNúmero entero largolong poblacion = 7000000000L;
floatNúmero de punto flotante (precisión reducida)float altura = 1.75f;
byteEntero de 8 bitsbyte codigo = 65;
shortEntero corto de 16 bitsshort cantidad = 1000;
BigDecimalNúmero decimal de alta precisiónBigDecimal precio = new BigDecimal("19.99");
BigIntegerEntero de alta precisiónBigInteger cantidad = new BigInteger("1000000000000");
DateFecha y horaDate fecha = new Date();

⚠️ IMPORTANTE Prestar atención a cómo se escribe el valor. Ya que hay tipos de datos que se escriben tal cual (como los números) y tipos de datos que han de escribirse entre comillas (como el texto).

Variables

Las variables se utilizan para almacenar valores en la memoria durante la ejecución de un programa. Deben declararse con un tipo de dato y un nombre, siempre siguiendo la sintaxis tipo variable = valor:

int edad = 25;
double salario = 1500.50;
String nombre = "Ana";

Se podría decir que las variables con "cajas" que guardan información, para luego poder usarlas. En el código de arriba estaríamos creando:

  • Una variable de tipo entero llamada edad que guarda el valor 25.
  • Una variable de tipo decimal llamada salario que guarda el valor 1500.50.
  • Una variable de tipo texto llamada nombre que guarda el valor "Ana".

Scope de las variables

El alcance de una variable se refiere a la parte del programa en la que la variable es visible y puede utilizarse. En Java, las variables pueden tener alcance local o alcance de clase.

  • variables de clase: se escriben antes del public static void main.
  • variables locales: se escriben dentro del public static void main.
public class EjemploScope {
// Variable de clase
static int variableClase = 10;

public static void main(String[] args) {
// Variable local
int variableLocal = 5;

System.out.println(variableClase); // Acceso a la variable de clase
System.out.println(variableLocal); // Acceso a la variable local

// ...
}
}

Operadores

Los operadores son símbolos que nos permiten realizar operaciones con datos y variables.

Por ejemplo:

int edad = 25; // Declara la variable edad
int nuevaEdad = edad + 1; // Declara la variables nuevaEdad como la edad + 1

En este caso, + es un operador que permite sumar dos valores.

Java dispone de diferentes tipos de operadores:

  • Operadores aritméticos
  • Operadores de asignación
  • Operadores de comparación
  • Operadores lógicos
  • Operadores de incremento y decremento
  • Operador ternario
  • Operadores de bits

1. Operadores aritméticos

Los operadores aritméticos se utilizan para realizar operaciones matemáticas.

OperadorOperaciónEjemplo
+Suma5 + 3
-Resta5 - 3
*Multiplicación5 * 3
/División10 / 2
%Módulo (resto)10 % 3

Suma

int a = 10;
int b = 5;

int resultado = a + b;

System.out.println(resultado);

Resultado:

15

Resta

int resultado = 10 - 3;

System.out.println(resultado);

Resultado:

7

Multiplicación

int resultado = 4 * 5;

System.out.println(resultado);

Resultado:

20

División

int resultado = 10 / 2;

System.out.println(resultado);

Resultado:

5

Importante: cuando trabajamos con int, la división también devuelve un int.

Por ejemplo:

int resultado = 7 / 2;

System.out.println(resultado);

El resultado será:

3

No será 3.5, porque los dos operandos son enteros.

Si queremos obtener decimales podemos utilizar double:

double resultado = 7.0 / 2;

System.out.println(resultado);

Resultado:

3.5

2. El operador módulo %

El operador % devuelve el resto de una división.

Por ejemplo:

int resultado = 10 % 3;

System.out.println(resultado);

El resultado es:

1

Porque:

10 / 3 = 3

y sobra:

1

¿Para qué sirve %?

Una de sus aplicaciones más habituales es comprobar si un número es par.

Un número es par si al dividirlo entre 2 el resto es 0.

numero % 2 == 0 // significa que el número es par

3. Operador + con Strings

El operador + también se puede utilizar para concatenar textos.

String nombre = "Maria";

System.out.println("Hola " + nombre);

Resultado:

Hola Maria

También podemos combinar texto y números:

int edad = 25;

System.out.println("Tengo " + edad + " años");

Resultado:

Tengo 25 años

Atención con el orden

Java evalúa las operaciones de izquierda a derecha.

Por ejemplo:

System.out.println("Resultado: " + 5 + 3);

El resultado será:

Resultado: 53

¿Por qué?

Primero se hace:

"Resultado: " + 5

y obtenemos:

"Resultado: 5"

Después:

"Resultado: 5" + 3

Por tanto:

"Resultado: 53"

Si queremos sumar primero los números debemos utilizar paréntesis:

System.out.println("Resultado: " + (5 + 3));

Resultado:

Resultado: 8

4. Operadores de asignación

El operador de asignación básico es:

=

Sirve para asignar un valor a una variable.

int edad = 25;

Aquí estamos guardando 25 dentro de la variable edad.

Java también proporciona operadores que combinan una operación aritmética con una asignación.

OperadorEquivale a
=a = valor
+=a = a + valor
-=a = a - valor
*=a = a * valor
/=a = a / valor
%=a = a % valor

Por ejemplo:

int numero = 10;

numero += 5;

Es equivalente a:

numero = numero + 5;

Ahora numero vale:

15

Otro ejemplo:

int numero = 10;

numero -= 3;

Es equivalente a:

numero = numero - 3;

Resultado:

7

También podemos utilizar:

numero *= 2;

que equivale a:

numero = numero * 2;

5. Operadores de comparación

Los operadores de comparación permiten comparar dos valores.

El resultado de una comparación siempre es un boolean:

true

o

false

Los principales operadores son:

OperadorSignificado
==Igual a
!=Distinto de
>Mayor que
<Menor que
>=Mayor o igual que
<=Menor o igual que

Igual ==

int edad = 18;

System.out.println(edad == 18);

Resultado:

true

Distinto !=

int edad = 18;

System.out.println(edad != 20);

Resultado:

true

Mayor >

int edad = 25;

System.out.println(edad > 18);

Resultado:

true

Menor <

int edad = 15;

System.out.println(edad < 18);

Resultado:

true

6. Diferencia entre = y ==

Esta es una de las cosas más importantes que debemos recordar.

= sirve para asignar un valor.

int edad = 20;

Estamos diciendo:

Guarda el valor 20 en edad.

== sirve para comparar.

edad == 20

Estamos preguntando:

¿El valor de edad es igual a 20?

Por ejemplo:

int edad = 20;

System.out.println(edad == 20);

7. Operadores lógicos

Los operadores lógicos permiten combinar varias condiciones.

Los principales son:

OperadorNombreSignificado
&&ANDY
``ORO
!NOTNegación

7.1. Operador AND &&

La expresión:

condicion1 && condicion2

es verdadera únicamente cuando las dos condiciones son verdaderas.

Por ejemplo:

int edad = 25;

System.out.println(edad >= 18 && edad <= 30);

Tenemos dos condiciones:

edad >= 18

y:

edad <= 30

Las dos deben cumplirse.

Tabla de verdad

Condición ACondición BA && B
truetruetrue
truefalsefalse
falsetruefalse
falsefalsefalse

7.2. Operador OR ||

El operador || significa O.

La expresión será verdadera cuando al menos una de las condiciones sea verdadera.

int edad = 15;

System.out.println(edad < 18 || edad > 65);

Tabla de verdad

| Condición A | Condición B | A || B | |---|---|---| | true | true | true | | true | false | true | | false | true | true | | false | false | false |


7.3. Operador NOT !

El operador ! sirve para negar una condición.

Si tenemos:

boolean activo = true;

Podemos hacer:

System.out.println(!activo);

Resultado:

false

Porque:

!true → false

y:

!false → true

8. Operadores de incremento y decremento

Java permite aumentar o disminuir una variable en una unidad utilizando:

++

y:

--

Incremento ++

int numero = 5;

numero++;

System.out.println(numero);

Resultado:

6

Es equivalente a:

numero = numero + 1;

Decremento --

int numero = 5;

numero--;

System.out.println(numero);

Resultado:

4

Es equivalente a:

numero = numero - 1;

9. Operador ternario

El operador ternario permite escribir una condición de forma compacta.

Su estructura es:

condicion ? valorSiVerdadero : valorSiFalso

Por ejemplo:

int edad = 20;

String resultado = edad >= 18 ? "Mayor de edad" : "Menor de edad";

System.out.println(resultado);

Resultado:

Mayor de edad

El operador ternario es especialmente útil cuando tenemos una condición sencilla.

10. Precedencia de operadores

Cuando tenemos varias operaciones en una misma expresión, Java debe decidir en qué orden realizarlas.

Por ejemplo:

int resultado = 2 + 3 * 4;

El resultado es:

14

No es 20.

Primero se realiza la multiplicación:

3 * 4 = 12

y después:

2 + 12 = 14

Una forma sencilla de recordar el orden general es:

  1. Paréntesis
  2. Incrementos y decrementos
  3. Multiplicaciones, divisiones y módulo
  4. Sumas y restas
  5. Comparaciones
  6. Operadores lógicos
  7. Asignaciones

Cuando tengamos dudas, podemos utilizar paréntesis.

Por ejemplo:

int resultado = (2 + 3) * 4;

Ahora el resultado es:

20

11. Operadores con variables

Los operadores se utilizan constantemente con variables.

Por ejemplo:

int precio = 20;
int cantidad = 3;

int total = precio * cantidad;

System.out.println(total);

Resultado:

60

Podemos combinar varias operaciones:

double precio = 100;
double descuento = 20;

double precioFinal = precio - (precio * descuento / 100);

System.out.println(precioFinal);

Resultado:

80.0

Resumen de operadores

Operadores aritméticos

+    suma
- resta
* multiplicación
/ división
% resto

Operadores de asignación

=    asignación
+= suma y asignación
-= resta y asignación
*= multiplicación y asignación
/= división y asignación
%= módulo y asignación

Operadores de comparación

==   igual
!= diferente
> mayor
< menor
>= mayor o igual
<= menor o igual

Operadores lógicos

&&   AND
|| OR
! NOT

Incremento y decremento

++   incrementar en 1
-- disminuir en 1

Operador ternario

?: