Mito sobre el Nombre de archivo y Nombre de la clase en Java

Fundamentos

La primera regla dada sobre el nombre de la clase Java dice “El nombre del archivo Java y el nombre de la clase deben ser iguales” ¿Es cierto? ¿Qué sucede si no es así? Veamos…

Cuando se viola la regla anteriormente mencionada, aparecerá un mensaje de error del compilador como se muestra a continuación:

/***** Nombre del Archivo: Test.java ******/
public class JavaDesdeCero
{
   public static void main(String[] args) {
        System.out.println("Hello world");
   }
}

Salida:

javac Test.java
C:\Users\Alex\Desktop>javac Test.java
Test.java:1: error: class JavaDesdeCero is public, should be declared in a file named JavaDesdeCero.java
public class JavaDesdeCero
              ^
1 error

Pero el mito puede ser violado de tal manera que podemos compilar el archivo anterior. ¿Cómo? de la siguiente manera:

/***** Nombre Archivo: Test.java ******/
class JavaDesdeCero
{
   public static void main(String[] args) {
        System.out.println("Hello world");
   }
}
  • Paso 1: Creará un Test.class (byte code) sin ningún mensaje de error ya que la clase no es pública.
javac Test.java
  • Paso 2: Ahora la salida será “Hello world”
java JavaDesdeCero

El mito sobre que el nombre de archivo y el nombre de clase deben ser el mismo sólo es así cuando la clase se declara en public.

Ejemplo Práctico: Nombre Archivo =! Nombre Clase

Con las características anteriores se pueden hacer más milagros. Es posible tener muchas clases en un archivo java. Para fines de depuración este enfoque puede ser utilizado. Cada clase se puede ejecutar por separado para probar sus funcionalidades (solo con una condición: no se debe utilizar el concepto de herencia). Pero, en general, es bueno seguir el mito.

Por ejemplo:

/*** Nombre Archivo: Test.java ***/
class Aprende
{
   public static void main(String[] args){
      System.out.println("Aprende");
   }
}
 
class JavaDesdeCero
{
   public static void main(String[] args){
      System.out.println("Java desde Cero");
   }
}

Cuando el archivo anterior se compila como javac Test.java creará dos archivos .class (Aprende.class y JavadesdeCero.class).

  • Como cada clase tiene un main() separado, se pueden probar individualmente.
  • Cuando se ejecuta java Aprende, la salida es “Aprende”
  • Cuando se ejecuta java JavaDesdeCero, la salida es “Java desde Cero”

¡Comparte con los demás este mito sobre el nombre de la clase en Java! 😉

Nombre de archivo y nombre de la clase
  • 10/10
    Descifrando el Mito - 10/10

Sobre el Autor:

Hey hola! Yo soy Alex Walton y tengo el placer de compartir conocimientos hacía ti sobre el tema de Programación en Java, desde cero, Online y Gratis.

0 comentarios

  1. […] Por convención, el nombre de la clase principal (clase que contiene el método main) debe coincidir con el nombre del archivo que contiene el programa. ¿ES UN MITO? Compruébalo en este enlace. […]

Deja una Respuesta

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.