Artigos de Tecnologia e Negócios > Programação

Método main em Java

Alex Felipe
Alex Felipe

Estou estudando para a certificação da Oracle e preciso saber todas as restrições do método main. Então vamos implementá-lo ora bolas:


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

Rodando a minha aplicação:

 > executando código

Ótimo, mas eu sempre terei que escrever o método main da mesma maneira? Será que não da pra modificar alguma coisa? Vamos tentar executar sem o modificador de acesso public:


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

Executando o código:

 Erro: o método main não foi encontrado na classe Main; defina o método main como: public static void main(String[] args)

Parece que não deu muito certo, ele não consegue achar o main... Vamos tentar agora sem o static:


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

Testando mais uma vez:

 Erro: o método main não é static na classe Main; defina o método main como: public static void main(String\[\] args)

Xi, tem que ser static também... Bom e o void? Vamos ver se eu consigo retornar um int:


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

Verificando novamente:

 Erro: o método main deve retornar um valor do tipo void na classe Main; defina o método main como: public static void main(String[] args)

É, parece que ele não permite nenhuma alteração... E esse args? Eu nem uso ele, então eu vou tentar tirar!


public static void main(){ 
    System.out.println("executando codigo"); }
 Erro: o método main não foi encontrado na classe Main; defina o método main como: public static void main(String\[\] args)

Puxa vida, será que não podemos alterar nada? Vamos tentar então, alterar o tipo do array args para outro, por exemplo, um int:


public static void main(int[] args){
     System.out.println("executando codigo"); }
 Erro: o método main não foi encontrado na classe Main; defina o método main como: public static void main(String[] args)

Aparentemente, precisamos escrever a assinatura do main como o conhecemos... Mas e se eu tentar variar o array de String (String[] args)? Em outras palavras, que tal tentarmos um varargs de String? Vejamos o que acontece:


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

Testando minha aplicação novamente:

 > executando código

Finalmente a minha aplicação rodou! Além de apenas variar de array de String para varargs, podemos também alterar o nome do parâmetro, não precisa ser args, pode ser qualquer nome:


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

Testando novamente:

 > executando código

Excelente! Agora eu sei quais são as restrições para declarar o método main:

Como vimos, para nossa aplicação executar precisamos do método main, porém o Java só entende que é o método main na nossa aplicação se seguir essa assinatura: public static void main(String[] args). Vimos também, que a única alteração permitida é alterar o array de String para um varargs de String, pois na prática funcionará da mesma maneira.

Não sabia que o método main era tão restrito? Quer se aprofundar mais na linguagem Java? Aqui na Alura temos uma formação Java.

Leia também:

Artigos de Tecnologia e Negócios > Programação

Cursos profissionais de Programação é na Alura, comece agora!

  • 1056 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

Premium

  • 1056 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75
à vista R$900
Matricule-se

Premium Plus

  • 1056 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100
à vista R$1.200
Matricule-se

Max

  • 1056 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120
à vista R$1.440
Matricule-se
Procurando planos para empresas?
Acesso por 1 ano
Estude 24h/dia onde e quando quiser
Novos cursos toda semana