Todo lo que necesitas saber para comenzar a programar en Java:
estructura de clases · identificadores · palabras clave · variables · constantes · control de flujo · excepciones
· arrays
Todo programa en Java se llama clase. Desde los programas más pequeños que escribimos cuando aprendemos, hasta los grandes sistemas bancarios — todo es una clase.
Una clase tiene una estructura definida con componentes obligatorios que veremos a continuación.
default package.
class. El nombre
debe comenzar con mayúscula.{ }.
;
{ }.Un método define el comportamiento de la clase. Se recomienda que el nombre del método sea siempre un verbo (calcular, mostrar, obtener…).
Su estructura básica es: tipo_de_retorno nombreDelMetodo(parámetros) { ... }
Existe un método especial llamado main — es el punto de entrada del programa. Java siempre empieza a ejecutar desde aquí. Se define exactamente así:
Los identificadores son los nombres únicos que el programador asigna a los componentes del programa: clases, métodos, variables, constantes, etc.
Elegir buenos nombres es fundamental para que el código sea legible y mantenible.
RecetaBizcocho en lugar de
Clase1.MiClase, RecetaBizcocho,
CuentaBancaria.calcularTotal, nombreUsuario._. Ej:
TIEMPO_HORNEADO, MAX_INTENTOS.dato1 ✓ — 1dato ✗
+, %, *,
@, #, etc.bizcocho, Bizcocho y
BIZCOCHO son tres identificadores distintos.class o int.Son palabras que Java ha reservado para un propósito específico dentro del lenguaje. No puedes usarlas como nombres de tus clases, variables o métodos porque el compilador ya las usa para otra cosa.
| Palabra | Descripción |
|---|---|
| int | Número entero de 32 bits. Rango: -2.147.483.648 a 2.147.483.647. Ej: int edad = 25; |
| long | Número entero de 64 bits, para valores muy grandes. Requiere L al final. Ej:
long poblacion = 8000000000L; |
| short | Número entero de 16 bits. Rango: -32.768 a 32.767. |
| byte | Número entero de 8 bits. Rango: -128 a 127. Útil para ahorrar memoria. |
| double | Número decimal de 64 bits (alta precisión). Ej: double precio = 9.99; |
| float | Número decimal de 32 bits (menor precisión). Requiere f al final. Ej:
float altura = 1.75f; |
| boolean | Solo puede ser true (verdadero) o false (falso). Ej:
boolean activo = true; |
| char | Un único carácter Unicode de 16 bits. Usa comilla simple. Ej: char letra = 'A'; |
| Palabra | Descripción |
|---|---|
| if | Ejecuta un bloque de código solo si se cumple una condición. Se puede combinar con else if
para múltiples condiciones. |
| else | Indica qué hacer cuando la condición del if (o else if) NO se cumple. |
| switch | Permite evaluar una variable contra múltiples valores posibles de forma ordenada. |
| case | Cada opción posible dentro de un switch. |
| default | El caso que se ejecuta si ningún case coincide. Es opcional pero recomendable. |
| Palabra | Descripción |
|---|---|
| for | Repite un bloque un número determinado de veces. Se usa cuando ya sabes cuántas repeticiones necesitas. |
| while | Repite mientras una condición sea verdadera. La condición se evalúa al principio — si es falsa desde el inicio, no se ejecuta ni una vez. |
| do | Se usa con while. La condición se evalúa al final —
garantiza que el bloque se ejecuta al menos una vez. |
| Palabra | Descripción |
|---|---|
| break | Interrumpe y sale inmediatamente de un bucle o de un switch. |
| continue | Salta el resto de la iteración actual del bucle y pasa a la siguiente. No sale del bucle. |
| return | Sale del método actual. Puede devolver un valor si el método tiene tipo de retorno distinto de
void. |
| Palabra | Descripción |
|---|---|
| public | El elemento es accesible desde cualquier clase del proyecto. |
| private | El elemento es accesible únicamente desde la clase donde se definió. |
| protected | Accesible desde la misma clase, sus subclases y otras clases del mismo paquete. |
| static | El elemento pertenece a la clase (no a un objeto). Se puede usar sin crear una instancia. |
| final | Una variable final no puede cambiar su valor. Un método final no puede
sobreescribirse. Una clase final no puede heredarse. |
| abstract | Define clases o métodos que no tienen implementación completa — deben completarse en subclases. |
| synchronized | Indica que un método o bloque es atómico (seguro para múltiples hilos simultáneos). |
| volatile | Garantiza que el valor de un atributo compartido entre varios hilos esté siempre sincronizado. |
| transient | Especifica que un atributo no debe persistirse (guardarse) durante la serialización de un objeto. |
| native | Indica que el método está implementado en otro lenguaje dependiente de la plataforma (C, C++). |
| Palabra | Descripción |
|---|---|
| class | Define una clase. Es el bloque fundamental de Java. |
| interface | Declara una interfaz — un contrato que una clase debe cumplir. |
| extends | Indica la clase padre de una clase (herencia). Una clase solo puede extender a una clase. |
| implements | Indica qué interfaz(es) implementa una clase. Una clase puede implementar varias interfaces. |
| import | Importa una clase de otro paquete para poder usarla. Ej: import java.util.Scanner; |
| package | Agrupa un conjunto de clases e interfaces en un directorio lógico. |
| Palabra | Descripción |
|---|---|
| new | Crea una nueva instancia (objeto) de una clase. Ej: Scanner sc = new Scanner(System.in);
|
| this | Referencia al objeto actual de la clase. También permite invocar al constructor de la misma clase. |
| super | Invoca a un método o constructor de la clase padre (superclase). |
| instanceof | Permite verificar si un objeto es instancia de una clase concreta. Devuelve true o
false. |
| void | Indica que un método no devuelve ningún valor. |
| enum | Define un tipo de dato enumerado — un conjunto fijo de constantes con nombre. |
| assert | Afirma que una condición es verdadera. Si no lo es, lanza un error (útil para pruebas). |
| strictfp | Obliga a usar cálculos en coma flotante estrictos según el estándar IEEE 754. |
| const / goto | Palabras reservadas pero ya no se usan en Java moderno. Existen para compatibilidad histórica. |
| Palabra | Descripción |
|---|---|
| try | Marca el bloque de código donde puede ocurrir un error (excepción). |
| catch | Captura y maneja la excepción que ocurrió dentro del bloque try. |
| finally | Bloque que siempre se ejecuta, haya o no haya excepción. Ideal para liberar recursos. |
| throw | Lanza manualmente una excepción desde el código. |
| throws | Declara en la firma del método qué excepciones puede lanzar, para que el que lo llame las maneje. |
=. Si no la inicializas, Java lo hace automáticamente (los números se inicializan en 0,
los booleanos en false).
static. Es
compartida por todas las instancias — si un objeto la cambia, todos lo ven.static y final. El nombre siempre va en MAYÚSCULAS. Una vez
asignado su valor, no puede cambiarse.
else if para evaluar varias condiciones en orden.
else if cuando hay muchas opciones. El break evita que siga
ejecutando los siguientes casos.
while, pero la condición se evalúa después de
ejecutar el bloque. Esto garantiza que el código se ejecuta al menos una
vez, aunque la condición sea falsa desde el principio.
Una excepción es un error que ocurre durante la ejecución del programa (no en la compilación). Por ejemplo: dividir entre cero, intentar acceder a un archivo que no existe, o convertir texto inválido a número.
Si una excepción no se maneja, el programa se detiene
abruptamente. Con try/catch podemos capturarla y manejarla de forma controlada.
catch.catch para distintos tipos
de excepción.throw lanza una excepción manualmente. throws avisa que un
método puede lanzarla.Un array es una lista de elementos del mismo tipo almacenados en posiciones contiguas de memoria. Todos los elementos deben ser del mismo tipo (todos enteros, todos Strings, etc.).
El tamaño del array se define al crearlo y no puede cambiarse después. Los índices siempre empiezan en 0, no en 1.
[ ]:.length devuelve el número de
elementos del array: