Método main()

Publicado el 14 de Septiembre, 2021
Java
Método main
Tiempo de lectura aproximado: 10 minutos.

Todo programa en Java comienza por el método main().

Cuando nosotros ejecutamos nuestros programas, el compilador de Java busca este método para comenzar a realizar las instrucciones que nosotros le indiquemos.

Sin embargo, para que pueda ser reconocido debe de contar con ciertas características que te explicaremos en este post.

Sintaxis del método main()

Al igual que la declaración de los métodos en Java, debe de contar con un modificador de acceso, en este caso es public, siempre.

La razón es porque la JVM (que es la máquina virtual de Java, Java Virtual Machine), necesita tener visibilidad sobre el método main(), si tuviera algun otro modificador de acceso, simplemente no lo podría encontrar y por lo tanto no podría ejecutarlo.

Además, debe de ser static, porque no debe ser necesario crear una instancia de la clase en la que se encuentra definido para poder hacer uso del método.

El tipo de retorno es void, ya que al ser el método inicial no es necesario que se regrese algún valor, ya que nadie haría uso de él.

A pesar de que podamos colocar otro tipo de retorno, el compilador siempre buscará el que sea declarado con void, y si no lo encuentra, no se ejecutará.

Seguimos con el nombre del método, main(). Así, con minúsculas. En caso de nombrarlo como Main(), la JVM no lo va a encontrar.

El método main() recibe un único parámetro, un arreglo de String. Este arreglo recibe los argumentos que nosotros le pasemos cuando lo ejecutemos, generalmente es a través de la consola de comandos. Cuando no se envía nada, que es el caso más común, se recibe un arreglo vacío.

Entonces, el famoso método main(), se ve de la siguiente manera:


    public static void main(String[] args) {
        //Instrucciones
    }
                             

Esta es la definición estándar del método.

Sin embargo...

Existen algunas particularidades del método main() que debemos conocer, hay algunas variantes en la definición del método que en algunos casos podremos llegar a encontrarnos, como en exámenes de certificación de Oracle. Así que, toma nota.

El método main() también puede ser declarado como final


    public static final void main(String[] args) {
        //Instrucciones
    }
                            

Recordemos: Primero, que el uso de final en los métodos, elimina la posibilidad de que sean sobreescritos en las clases hijas.

Segundo: Los métodos estáticos no pueden ser sobreescritos, son redefinidos, por lo tanto el uso de final en el método main() nos deja sin la posibilidad de que sea sobreescrito en alguna subclase.

Algo que en el escenario más común jamás sucederá, ya que al ser el punto de partida de los programas en Java, es invocado por la JVM, y al ejecutarlo manualmente desde nuestro código terminaríamos en un ciclo infinito, provocando con un StackOverflowError.

La definición del método main() con final no tiene mayor impacto y es válido declarlo así, aunque realmente no es necesario.

El orden puede cambiar


    static final public void main(String args[]) {
        //Instrucciones
    }
                            

Las palabras reservadas static, public y final pueden estar en cualquier orden, siempre y cuando se encuentren antes del tipo de retorno void. A pesar de que pueda parecer que es incorrecto, es totalmente válido.

Como Java está basado en el lenguaje C, la declaración de los arreglos también puede realizarse así, colocando los corchetes después del nombre del arreglo, o como se definen en Java, seguido del tipo de dato. Ambas definiciones son aceptables.

El nombre del arreglo es indiferente


    final static public void main(String arguments[]) {
        //Instrucciones
    }
                                

El nombre del arreglo del método main() puede tener cualquier nombre. Lo que es realmente relevante para el compilador es que sea un arreglo de String y que sea el único argumento declarado.

Los argumentos variables también son válidos


    public static void main(String... arguments) {
        //Instrucciones
    }
                                    

El método main() también puede recibir argumentos variables en lugar de un arreglo. Ambas definiciones son permitidas, aunque el estándar es el arreglo de String.

Conclusión

El método main() es el punto de partida de las aplicaciones en Java, todas las instrucciones empiezan a partir de ese método, debe de ser public, static y el tipo de retorno void. Existen algunas variantes en la declaración del método que es importante conocer.

No olvides visitar nuestra cuenta de Instagram@codigazosit

Te compartimos el post de este artículo por si tienes alguna duda o comentario.

Instagram Post: Método main()

¡Muchas gracias por tu visita!

Encuéntranos en nuestras redes
Donaciones