Tabla de Contenidos

02.1 - Fundamentos de programación en Java

1. Lenguajes de programación

Podemos clasificar los lenguajes de programación atendiendo a distintos criterios

Según su nivel de abstracción

Ejemplo de código máquina:

0010 0000 1001 1001 1000 1110

Ejemplo de lenguaje ensamblador:

MOV R1, DPL
CJNE R1, #78H, T05SEG
RET

Según su forma de ejecución

2. Elementos de un lenguaje de programación

Hay una serie de elementos que están presentes en casi todo lenguaje de programación:

3. Introducción al lenguaje Java

Java es un lenguaje de programación de alto nivel, de propósito general y con una sintaxis ampliamente derivada de C/C++. Fue creado originalmente por Sun Microsystems (actualmente propiedad de Oracle) en 1995.

Entre sus pilares fundamentales destacan:

Compilación y ejecución de aplicaciones Java

Los archivos de código fuente en Java tienen la extensión .java y su nombre debe coincidir exactamente con la clase principal que contienen.

public class HolaMundo {

        static void main() {
                IO.println("Hola Mundo");
        }
}

Existen dos formas de ejecutar este programa desde la consola:

1. Ejecución directa en un solo paso: Ideal para pruebas rápidas. Compila en memoria y ejecuta el resultado de forma transparente:

java HolaMundo.java

2. Proceso tradicional en dos pasos (entornos de producción):

1. Compilar el código fuente a bytecode (genera el archivo HolaMundo.class):

javac HolaMundo.java

2. Ejecutar el bytecode compilado en la JVM:

java HolaMundo

Al ejecutar con el comando java un archivo ya compilado, no debemos poner la extensión .class, solo el nombre de la clase. Esta ejecución es más rápida porque no requiere recompilar el código.

Generación de archivos .class

El compilador de Java genera un archivo .class por cada clase definida en nuestro código fuente, independientemente de si están en el mismo archivo .java o en archivos separados.

public class HolaMundo2 {

    static void main() {
        IO.println("Hola Mundo 2");
    }
}

class HolaMundo3 {

    static void main() {
        IO.println("Hola Mundo 3");
    }
}

Al ejecutar javac HolaMundo2.java, se generarán dos archivos independientes: HolaMundo2.class y HolaMundo3.class.

Regla de visibilidad de archivos: Un archivo .java solo puede contener una clase pública (public) como máximo, y el nombre del archivo debe coincidir exactamente con el nombre de dicha clase.

Estructura de una aplicación Java

Vamos a ver la estructura del ejemplo anterior HolaMundo.java:

public class HolaMundo {

        static void main() {
                IO.println("Hola Mundo");
        }
}

Secuencia de instrucciones

Las instrucciones se ejecutan secuencialmente (de arriba a abajo) y deben terminar obligatoriamente con punto y coma (;).

static void main() {
    IO.println("Primera instrucción");
    IO.println("Segunda instrucción");
}

Indentación del código

Aunque Java no obliga a sangrar el código para que compile (a diferencia de Python), la indentación es fundamental para garantizar la legibilidad del proyecto. Se recomienda usar 4 espacios por cada nivel de anidamiento.

Ejemplo con correcta indentación:

public class HolaMundo {
    
    static void main() {
        IO.println("Código fácil de leer");
    }
}

Comentarios

Los comentarios son anotaciones dentro del código fuente que el compilador ignora por completo. Su objetivo es explicar la lógica del programa, añadir notas aclaratorias o generar documentación técnica.

En Java podemos escribir comentarios de tres formas:

/**
 * Comentario de documentación (JavaDoc).
 * Muestra información sobre la clase o el autor.
 */
public class HolaMundo {

    static void main() {
        /*
         * Comentario de bloque o multilínea.
         * Útil para detallar algoritmos o bloques
         * de código complejos.
         */
        
        // Comentario de una línea: explica la instrucción siguiente
        IO.println("Hola mundo");
    }
}

No abuses de los comentarios: Como indica Robert C. Martin en su libro Código limpio (Clean Code), el mejor comentario es el que no hace falta escribir. Es preferible escribir código expresivo y autoexplicativo (utilizando buenos nombres de variables y métodos) antes que llenar el programa de comentarios redundantes.
Limpia el código “muerto”: Durante la fase de desarrollo es habitual comentar bloques de código para realizar pruebas. Es importante eliminar todo ese código comentado antes de finalizar y entregar el proyecto, ya que genera ruido y confunde a otros programadores.