Em programas Java, o ponto a partir do qual o programa começa a sua execução ou simplesmente o ponto de entrada de programas Java é o método principal(). Portanto, é um dos métodos mais importantes de Java e ter uma compreensão adequada do mesmo é muito importante.
Sintaxe mais comum do método main():
>>/p>
class
GeeksforGeeks {
public
static
void
main(String args)
{
System.out.println(
"I am a Geek"
);
}
}
br>
Explicação
Todas as palavras no vazio público estático declaração principal tem um significado para a JVM.
- Público: É um modificador de Acesso, que especifica de onde e quem pode aceder ao método. Tornar público o método principal() torna-o globalmente disponível. É tornado público para que a JVM o possa invocar de fora da classe, uma vez que não está presente na classe actual.
>br>
class
GeeksforGeeks {
private
static
void
main(String args)
{
iv
System.out.println(
"I am a Geek"
);
}
}
br>>>/div>
Error: Main method not found in class, please define the main method as:public static void main(String args)or a JavaFX application class must extend javafx.application.Application
- Estático: É uma palavra-chave que, quando associada a um método, faz dele um método relacionado com uma classe. O método principal() é estático para que a JVM o possa invocar sem instanciar a classe. Isto também guarda o desperdício desnecessário de memória que teria sido utilizado pelo objecto declarado apenas para chamar o método main() pela JVM.
>/p>
>div>>>br>class
GeeksforGeeks {
public
void
main(String args)
{
System.out.println(
"I am a Geek"
);
}
}
br>>>/div>
Error: Main method is not static in class test, please define the main method as:public static void main(String args)
- main: É o nome do método principal Java. É o identificador que a JVM procura como ponto de partida do programa java. Não é uma palavra-chave.
>br>
class
GeeksforGeeks {
public
static
void
myMain(String args)
{
System.out.println(
"I am a Geek"
);
}
}
br>>>/div>
- String args: Armazena argumentos de linha de comando Java e é um conjunto do tipo java.classe lang.String. Aqui, o nome do array String é args mas não é fixo e o utilizador pode usar qualquer nome em vez dele.
>br>
class
GeeksforGeeks {
public
static
void
main(String args)
{
for
(String elem : args)
System.out.println(elem);
}
}
>br>
Void: É uma palavra-chave e usada para especificar que um método não devolve nada. Como o método principal() não devolve nada, o seu tipo de retorno é nulo. Assim que o método main() termina, o programa java também termina. Assim, não faz qualquer sentido retornar a partir do método main() uma vez que a JVM não pode fazer nada com o valor de retorno do mesmo.
class
GeeksforGeeks {
public
static
int
main(String args)
{
System.out.println(
"I am a Geek"
);
return
1
;
}
}
br>>/div>
Error: Main method not found in class, please define the main method as:public static void main(String args)or a JavaFX application class must extend javafx.application.Application
Error: Main method not found in class, please define the main method as:public static void main(String args)or a JavaFX application class must extend javafx.application.Application
123
Para além da assinatura do principal acima mencionada, pode utilizar o vazio estático público principal(String args) ou o vazio estático público principal(String… args) para chamar a função principal em java. O método principal é chamado se o seu parâmetro formal corresponder ao de um conjunto de Strings.
P>Pode o método principal ser int? Se não, porquê?
>/p>
class
GeeksforGeeks {
public
static
int
main(String args) {
System.out.println(
"GeeksforGeeks"
);
}
}
br>
Java não regressa implicitamente, mesmo que declaremos o tipo de retorno do principal como int.
Obteremos erro de tempo de compilação
prg1.java:6: erro: declaração de retorno em falta
}
^
1 erro
class
GeeksforGeeks {
public
static
int
main(String args) {
System.out.println(
"GeeksforGeeks"
);
return
0
;
}
}
br>>>/div>
Now, mesmo que nós próprios regressemos 0 ou inteiro explicitamente, a partir do int principal.
Recebemos erro de tempo de execução.
Error: O método principal deve retornar um valor do tipo void na classe GeeksforGeeks, por favor
define o método principal como:
public static void main(String args)
Explicação –
Os programas C e C++ que retornam int do principal são processos do Sistema Operativo. O valor int retornado a partir do principal em C e C++ é código de saída ou estado de saída. O código de saída do programa em C ou C++ ilustra, porque é que o programa terminou. O código de saída 0 significa uma terminação bem sucedida. No entanto, o estado de saída não zero indica erro. Por exemplo, o código de saída 1 representa erros diversos, tais como “dividir por zero”
O processo parental de qualquer processo infantil continua à espera do estado de saída da criança. E depois de receber o estado de saída da criança, limpa o processo da criança da tabela de processos e liberta os recursos que lhe são atribuídos. É por isso que se torna obrigatório que os programas C e C++ (que são prensas de SO) passem o seu estado de saída do principal explícita ou implicitamente.
No entanto, o programa java corre como ‘fio condutor’ na JVM. O programa Java não é sequer um processo de Sistema Operativo directamente. Não há interacção directa entre o programa Java e o Sistema Operativo. Não há atribuição directa de recursos ao programa Java directamente, ou o programa Java não ocupa qualquer lugar na tabela de processos. A quem deve retornar o estado de saída, então. É por isso que o método principal de Java está concebido para não retornar o estado int ou exit.
Mas JVM é um processo de um sistema operativo, e JVM pode ser terminado com determinado estado de saída. Com a ajuda de java.lang.Runtime.exit(int status) ou System.exit(int status)