Botón para abrir el Menú Botón para cerrar el Menú
Logo da empresa Alura
Iniciar Sesión Nuestros Planes
Formaciones Conoce a Luri
  • Programación _
  • Front End _
  • Data Science _
  • DevOps _
  • Innovación y Gestión _
Artículos de Tecnología > Programación

Java: Conozca el método main

Alex Felipe
Alex Felipe
16/01/2022

Compartir

Java: Conheça o método main

Estoy estudiando para la certificación de Oracle y necesito saber todas las restricciones del método main. Entonces vamos a implementarlo

public static void main(String [] args){ 
    System.out.println("ejecutando código"); }

Ejecutando la aplicación:

 > ejecutando código

Genial, ¿Pero yo siempre tendré que escribir el método main de la misma manera? ¿Será que no se puede modificar alguna cosa? Vamos a intentar ejecutar sin el modificador de acceso public:

static void main(String[] args){ 
    System.out.println("ejecutando codigo"); }

Ejecutando el código:

 Error: el método main no fue encontrado en la clase Main; defina el método main como: public static void main(String[] args)

Parece que no salio bien, él método no puede encontrar el main... Vamos a intentar ahora sin el static:

public void main(String[] args){
     System.out.println("ejecutando codigo"); }

Intentando de nuevo:

 Error: El método main no es static en clase Main; defina el método main como: public static void main(String\[\] args)

¡tiene que ser static también!... bien y ¿el void? Vamos a ver si consigo retornar un int:

public static int main(String[] args){
     System.out.println("ejecutando codigo"); return 1; }

Verificando nuevamente:

 Error: el método main debe retornar un valor de el tipo void en la classe Main; defina el método main como: public static void main(String[] args)

Si, parece que él metodo no permite ninguna alteración... y ¿ese args? Yo no necesito usarlo, ¡entonces voy a intentar excluirlo!

public static void main(){ 
    System.out.println("ejecutando codigo"); }
 Error: el método main no fue encontrado en la classe Main; defina el método main como: public static void main(String\[\] args)

Tampoco funciono, ¿será que no podemos alterar nada? Vamos a intentar entonces, cambiemos el tipo de array args para otro, por ejemplo, un int:

public static void main(int[] args){
     System.out.println("ejecutando codigo"); }
 Error: el método main no fue encontrado en classe Main; defina el método main como: public static void main(String[] args)

Aparentemente, necesitamos escribir la declaración del main como lo conocemos... Pero ¿y si intentamos variar el array de String (String[] args)? En otras palabras, ¿qué tal si intentamos un varargs de String? Veamos que pasa:

public static void main(String ... args){
     System.out.println("ejecutando codigo"); }

Probando la aplicación nuevamente:

 > ejecutando código

¡Finalmente la aplicación corrió! Aparte de cambiar apenas de array y de String para varargs, podemos también alterar el nombre del parámetro, no necesita ser args, puede ser cualquier nombre:

public static void main(String[] variavel){ 
    System.out.println("ejecutando codigo"); }

Probando nuevamente:

 > ejecutando código

¡Excelente! Ahora ya sabemos cuáles son las restricciones para declarar el método main:

Como vimos, para que nuestra aplicación se ejecute necesitamos del método main, pero java solo entiende que es el método main en nuestra aplicación si seguimos esta declaración: public static void main(String[] args). Vimos también que la única alteración permitida es cambiar el array de String para un varargs de String, pues en la práctica funcionará de la misma forma.

¿No sabías que el método main era tan restricto? ¿Quiere profundizarse más en el lenguaje Java? Aqui en Alura tenemos una formación Java.

Alex Felipe Victor Vieira

Alex Felipe Victor Vieira

Alex es instrutor y desarrollador, posee experiencia en Java, Kotlin, Android, persistencia de datos, comunicación con Web, API, personalización de pantallas, pruebas automatizados, arquitectura de Apps y Firebase. De los cuales a creado más de 40 cursos. Es experto en Programación Orientada a Objetos, pensando siempre en compartir las buenas practicas y tendencias del mercado de desarrolllo de software. Actuó 2 años como editor del contenido en el blog de Alura y hoy todavia escribe articulos tecnicos.

Alex Felipe
Alex Felipe

Alex é instrutor e desenvolvedor e possui experiência em Java, Kotlin, Android. Atualmente cria conteúdo no canal https://www.youtube.com/@AlexFelipeDev.

Artículo Anterior
¿Que es .Net framework?
Siguiente Artículo
Importando clases en Java

Ver otros artículos sobre Programación

Navegación

  • Planes
  • Instructores
  • Blog
  • Política de privacidad
  • Términos de uso
  • Sobre nosotros
  • Preguntas frecuentes

¡CONTÁCTANOS!

  • ¡Quiero entrar en contacto!

Blog

  • Programación
  • Data Science
  • Front End
  • Innovación y Gestión
  • DevOps

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

NOVEDADES Y LANZAMIENTOS

Aliados

  • Programa de aceleração Scale-Up Endeavor
  • En Alura somos unas de las Scale-Ups seleccionadas por Endeavor, programa de aceleración de las empresas que más crecen en el país.
  • Growth Academy 2021 do Google For Startups
  • Fuimos unas de las 7 startups seleccionadas por Google For Startups en participar del programa Growth Academy en 2021
Alura

Powered by

Caelum

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

Cursos

Cursos de Programación
Lógica de Programación | Java
Cursos de Front End
HTML y CSS | JavaScript | React
Cursos de Data Science
Data Science | Machine Learning | Excel | Base de Datos | Data Visualization | Estadística
Cursos de DevOps
Docker | Linux
Cursos de Innovación y Gestión
Transformación Ágil | Marketing Analytics

Alura

  • Educação em Tecnologia

    • logo fiap FIAP
    • logo casa do codigo Casa do Código
    • logo pm3 PM3 - Cursos de Produto
  • Mais Alura

    • logo alura start START BY Alura
    • logo alura lingua Alura Língua
    • logo alura para empresas Alura Para Empresas
    • logo alura latam Alura LATAM
  • Comunidade

    • logo tech guide Tech Guide
    • logo 7 days of code 7 days of code
    • logo Hipsters ponto Jobs Hipsters ponto Jobs
  • Podcasts

    • logo Hipster Network Hipster Network
    • logo Hipsters ponto Tech Hipsters ponto Tech
    • logo Dev sem fronteiras Dev sem Fronteiras
    • logo Like a Boss Like a Boss
    • logo IA Sob Controle IA Sob Controle
    • logo Mesa de Produto Mesa de Produto
    • logo Decode Decode
    • logo FIAPCast FIAPCast