¿Cuál es el paquete predeterminado en el que se colocan mis clases si no lo especifico?

Supongamos que tengo un archivo llamado Main.java con el siguiente código:

public class Main { public static void main(String[] args) { System.out.println("Hello world"); } } 

¿Está en un paquete específico, en (¿quizás?) Un paquete sin nombre?

Gracias

Una clase que no está en un paquete con nombre está en un paquete sin nombre . Por lo tanto, el nombre de clase completo es Main .

Tales clases no se pueden usar desde un paquete con nombre, excepto por reflexión.

El JLS dice que:

La plataforma Java SE proporciona paquetes sin nombre principalmente para su comodidad cuando desarrolla aplicaciones pequeñas o temporales o cuando apenas comienza el desarrollo.

Java no tiene espacios de nombres, tiene paquetes. Y sí, las clases sin declaraciones de paquetes son implícitamente parte de un ” paquete sin nombre “, a menudo también llamado “paquete predeterminado”. Sin embargo, dado que no es posible importar clases desde un paquete sin nombre y dado que la especificación del lenguaje permite explícitamente que las implementaciones tengan reglas diferentes sobre si las clases en paquetes sin nombre son visibles entre sí, generalmente es una buena idea poner todas las clases en un nombre paquetes a excepción del código experimental.

Según el JLS se llama:

7.4.2 Paquetes sin nombre

Una unidad de comstackción que no tiene statement de paquete es parte de un paquete sin nombre.

Intereting Posts