¿Qué es?

Es la forma estándar en la que se organiza un programa en Java, definida por reglas del lenguaje y necesaria para que la JVM pueda ejecutarlo correctamente.

Todo programa en Java tiene:

  • Una clase
  • Un método principal (main)
  • Opcionalmente: atributos, métodos, lógica

👉 Java no permite código “suelto” como otros lenguajes (ej: JavaScript)

¿Para qué sirve?

En proyectos reales:

  • Define cómo se organizan los sistemas
  • Permite escalar código en módulos
  • Facilita mantenimiento y testing
  • Hace posible frameworks como Spring Boot

👉 Sin una estructura clara, el código se vuelve inmantenible

Conceptos clave

  • Clase (class) → Contenedor principal del código
  • Método (method) → Bloque de ejecución
  • main() → Punto de entrada de la aplicación
  • Paquetes (package) → Organización lógica del código
  • Modificadores (public, private) → Control de acceso

Reglas importantes

  • Todo programa Java debe tener al menos una clase
  • El método principal debe ser exactamente:
public static void main(String[] args)
  • El nombre del archivo debe coincidir con la clase pública
  • El código debe estar dentro de { }
  • Java es estrictamente estructurado

Errores comunes

  • ❌ Escribir código fuera de una clase
  • ❌ Olvidar el método main
  • ❌ Error en la firma del main
  • ❌ No respetar el nombre del archivo
  • ❌ Mala organización sin paquetes

Ejemplo de código

package com.miempresa.app;

public class Aplicacion {

    // Método principal (entry point)
    public static void main(String[] args) {
        System.out.println("Aplicación iniciada");
        saludar();
    }

    // Método adicional
    public static void saludar() {
        System.out.println("Hola desde un método");
    }

}

Ejemplo de vida real

En un sistema bancario:

com.banco.app
├── Main.java
├── controller/
├── service/
├── repository/
└── model/

👉 Cada parte tiene una responsabilidad clara

Ejemplo:

  • controller → recibe requests
  • service → lógica de negocio
  • repository → acceso a datos

Diagrama conceptual

[ Archivo .java ]
|

[ package ]
|

[ class ]
|

[ main() ]
|

[ Métodos / lógica ]

Uso en proyectos reales

En arquitectura backend moderna:

Spring Boot Application

@SpringBootApplication
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

👉 El main inicia toda la aplicación:

  • Servidor embebido (Tomcat)
  • Inyección de dependencias
  • Configuración de contexto

Conclusión

La estructura en Java no es opcional, es obligatoria y estricta.

Debes dominar:

  • Cómo se define una clase
  • Cómo funciona el método main
  • Cómo organizar el código en paquetes

👉 Esto es la base para entender frameworks, arquitectura y sistemas reales.