no comando public static void main(String[] args) qual seria o sentido do String []? oque ele adiciona? se eu colocar algo no [] oque muda?
no comando public static void main(String[] args) qual seria o sentido do String []? oque ele adiciona? se eu colocar algo no [] oque muda?
Opa, tudo bem Eurico?
Uma coisa muito importante, todo programa em java precisa de um método main para ser executado, as vezes ele vai estár explicitamente em seu programa, as vezes pode estar dentro de um servidor, assim como tomcat ou algo do tipo.
Para que serve o main? Todo programa Java (em formato .class ou .jar) é executado por um programa em C++, que ele procura um método main dentro de sua aplicação, que seja público (public), e que ele não precise instanciar um objeto da classe para chamar(por isso tem que ser static) e que tenha um array de argumentos(String[] args) para passar os paramêtros que vieram da linha de comando para ele.
Ou seja, sempre que você executar o programa, todas as coisas escritas após o nome da classe, serão argumentos, ex: java MinhaClasse Eurico Gabriel
, isso quer dizer que passamos dois argumentos para o programa, "Eurico" e "Gabriel" e lá dentro do seu main, você pode usar como preferir, da pra fazer assim:
public static void main(String[] args) {
//ASSIM ELE VAI PERCORRER OS ARGUMENTOS E PRINTAR O VALOR DELES
Arrays.stream(args).forEach(System.out::println);
// Ou da forma sem utilizar a API de Streams
for (String arg : args) {
System.out.println(arg);
}
}
A assinatura do método não pode ser trocada, pois ele busca por quem obdeça esse contrato, seja publico(public), para conseguir achar em qualquer classe, estatico(static) para não precisar instaciar uma classe previamente, seja void, para só executar e não retornar nada e tenha o nome de main para conseguir encontrar e receba um array String[]
para serem os argumentos e por último o args, como esse é o nome da variavel é a única coisa que você pode trocar, mas é um padrão deixar como args mesmo.
Caso você utilize o Intellij, você pode pegar seu programa com o método main, lá perto da onde você consegue rodar o programa, você consegue editar as configurações de RUN, e passar uma lista de "PROGRAM ARGUMENTS" separado por espaço em branco:
No eclipse a ideia é a mesma, basta clicar lá onde você roda o programa, editar as configurações e mandar os argumentos.
Qualquer duvida, pode mandar, estou a disposição :)