E ae galera.
Estou começando a estudar java e orientação a objetos e estou com uma dúvida sobre a classe main.
Na declaração public static void main(String args[]), o que significa o parâmetro String args[]? Para que ele serve ?
Valeu .
E ae galera.
Estou começando a estudar java e orientação a objetos e estou com uma dúvida sobre a classe main.
Na declaração public static void main(String args[]), o que significa o parâmetro String args[]? Para que ele serve ?
Valeu .
Olá,
Você entende que String args[] significa um Array de String ok?
…
Quando você invoca pra rodar, a classe que tem o método main, você pode definir parâmetros de linha de comando. E esses parâmetros estarão nesse Array de String.
Digamos que você tem um programa de calcula a área e o perímetro de um Quadrado. A classe que contém o main é chamada de ExecQuadrado, ela depende de um parâmetro que diga para ela qual o tamanho do lado.
Como fazemos para executar essa classe no console?
java ExecQuadrado
Essa linha cima é a execução básica. Sem parâmetros de linha de comando. Provavelmente o programa não retornará nada.
Então temos que definir o lado na hora que chamarmos a classe.
java ExecQuadrado -l 5
O programa deve ser capaz de pegar do Array de String chamado args o valor do lado que é 5. Fazer os cálculos e devolver o resultado.
O parâmetro de linha de comando é esse:
-l 5
Em C, o main tem argc e argv.
Beleza?
Só pra deixar mais explicativo ainda.
Na primeira linha de código desse POST temos a palavra java. Que é um programa.
java classe chama o programa java para executar sobre a classe.
O programa java também pode ser usado com parâmetros de linha de comando. Por exemplo dizendo aonde está o classpath.
java -classpath "C:\java\pasta1\pasta2\pacote.jar;." classe
Espero não ter ficado chato de ler.
O método main é um método que, digamos assim, “dá vida” ao seu programa. É a partir desse método que começa toda a execução de um aplicativo java. Quando vc pede pra JVM rodar uma classe como um “aplicativo java”, esta classe, obrigatoriamente deve ter um método com esta assinatura
public static void main(String args[])
As vezes quando iniciamos a execução de um programa, podemos querer passar apara ele alguns para seu funcionamento, e é aí que entra o “args[]”. É possível vc mandar a JVM rodar um programa java e passar uma série de parâmetros. Estes parâmetros, separados por espaço, são armaze3nados no array de String args para que vc possa manipulá-los no seu programa.
Imagine um programa tosqueira que mostra uma pop-up com seu nome e idade. Estes dados seriam passados como parâmetros no momento em que vc manda a JVM executar o programa. Infelizmente, como uso muito o eclipse, não estou mais lembrado como se invoca um programa java na linha de comando. mas vamos supor que seja algo assim:
java ProgTosco.class Luciano 25
O nosso programa seria algo assim…
import javax.swing.JOptionPane;
public class ProgTosco{
public static void main(String argumentos[]){
JOptionPane.showMessageDialog(null, "Nome: " + argumentos[0] + "\nIdade" + argumentos[1]);
}
}
Espero que tenha ajudado!
É MÉTODO e não classe.
a classe que possui a assinatura de um método main, é passível de ser executável como Application Java, e o argumento que ela recebe como parâmetro estaram armazenadas os valores passados na linha de execução da classe.
Opa era método… :lol:
Mas mesmo assim valeu galera.
Agora to entendendo.
Primeira dúvida, todos escreveram sobre o método da seguinte forma:
(String args []). eu conheço o método assim:
(String [] args), existe alguma diferença? já que é um array não é assim que se declara?
Outra dúvida(eu tentei antes de postá-la aqui, mas não deu certo…) O que impede que este array seja de outra tipo e não de String? daí se quisemos receber no caso números era só declarar direto (int [] args)… um abração a todos…
Sobre a declaração do vetor, pode ser tanto de um jeito como de outro. Geralmente é melhor declarar como Int[] vet ou String[] args (apesar de sempre fazer String args[] na main - já me acostumei ), por ser mais legível. Fica mais fácil de ver que a variável declarada se trata de array.
Já sobre o tipo eu também tenho essa dúvida. Eu tentei colocar public static void main(int args[]) ou int[] args) mas também não funcionou. Alguém pode ajudar ??
valeu pessoal.
Porque é definido que o método main DEVE receber um array de String e não de outro tipo. Se for de outro tipo, ele considera como um outro método (overloading).
Valeu a força ai galera! Ai Bruno é bom saber que alguém também tenta umas loucuras no Java! rsrsrs Um abração galera!!