sexta-feira, 6 de março de 2015

0.0.0.17.1.1 - Argumentos em linha de comando

Este post foi motivado por perguntas feitas em sala de aula:

Você já deve ter usado linhas de comando como:

javac Ola.java
java Ola
javadoc Ola.java

Sabemos que java, javac, javadoc são executáveis. E que Ola.java, Ola são os nomes dos arquivos (completos ou não).

Sejam nomes de arquivos, números ou outras palavras, o que segue o nome do executável são argumentos de linha de comando.

Esses argumentos são passados para os executáveis. Para que isso seja possível, precisam ser armazenados em alguma variável acessível pelo executável. Esse executável foi escrito por um programador em alguma linguagem, logo tem algum tipo de código-fonte. Neste essa variável também existe (senão o programador não teria como usá-la).

Cada linguagem de programação trata isso de uma forma diferente. Em java, os argumentos são passados para o método main através do argumento do método (também chamado parâmetro do método). No caso do main do Ola.java, o argumento do método chama-se args.

Lembrando que java é uma linguagem de tipagem forte, args tem que ter tipo. Ele é um array de Strings.

String é o nome dado a sequencias de caracteres e em Java é um objeto. Um literal do tipo String é delimitado por aspas duplas. Por exemplo "Olá Mundo!" é um literal do tipo String.

Array é uma lista de elementos de tipo homogêneo indexada por um número.
Os elementos da lista são acessados por <nome>[<índice>]. Por exemplo args[0] é uma String e refere-se ao primeiro elemento de args. args[1] também é String e refere-se ao segundo elemento, args[2] idem,...

Usando o exemplo da aula, se na linha de comando digitamos:

java Ola Pedro 11:25

Nada diferente vai acontecer porque no programa não "mandamos" o computador usar os argumentos. MAS ELES SÃO PASSADOS PARA O MAIN ATRAVÉS DE ARGS!!!

então se dentro do main "mandarmos" escrever na tela args[0] ele escreverá Pedro, e se fizermos o mesmo com args[1], escreverá 11:25
(faça isso com seu Ola.java!!!)

Com comandos de seleção, conversão de String em Int e operações relacionais, dada a nossa interpretação de que 11:25 é uma hora do dia, podemos escrever um programa que escreva "Bom dia, Pedro!"


Nenhum comentário:

Postar um comentário