Passando Parâmetros
1 2 3 4 5 6 |
public class MyClass { public static void main(String args[]) { System.out.println(args[0]); System.out.println(args[1]); } } |
Execute o programa MyClass com os argumentos Michel Adriano.
javac MyClass.java
java MyClass Michel Adriano
A saída será.
Michel
Adriano
O programa identificou as duas palavras como argumentos. Espaços são utilizados para separarem os argumentos. Se quiser colocar espaços dentro do argumento, utilize as aspas.
java MyClass “Michel Adriano” Medeiros
Se chamar um argumento que não exista a seguinte mensagem irá aparecer.
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3 at MyClass.main(MyClass.java:4)
Se não quiser mais executar o comando javac e depois java, pode-se fazer o seguinte:
java MyClass.java Michel Adriano
Entendendo Declarações de Pacotes e Imports
Java vem com milhares de classes nativa e outras que desenvolvedores constroem. Com essa quantidade de classes o Java precisa de uma maneira de organizá-las. É como colocar papeis em gavetas. Só que no Java chamamos de pacotes.
Em uma gaveta não colocamos no nome da gaveta o papel específico que você está precisando. Costuma-se utilizar pastas e as pastas são organizadas em grupos que contêm os papeis. No Java é a mesma lógica. Precisamos saber o pacote que estão os arquivos. Vamos tentar compilar o código a seguir.
1 2 3 4 5 6 |
public class MyClass { public static void main(String args[]) { Random r = new Random(); System.out.println(r.nextInt(10)); } } |
Vai gerar um erro parecido com esse:
/MyClass.java:3: error: cannot find symbol
Random r = new Random();
^
symbol: class Random
location: class MyClass
/MyClass.java:3: error: cannot find symbol
Random r = new Random();
^
symbol: class Random
location: class MyClass
2 errors
Veja que o erro mostra que não foi encontrado a classe Random, portanto temos que fazer a importação e executar novamente o programa.
1 2 3 4 5 6 7 |
import java.util.Random; // diz onde encontrar o pacote Random public class MyClass { public static void main(String args[]) { Random r = new Random(); System.out.println(r.nextInt(10)); } } |
Agora sim funcionará, e aparecerá um número entre 0 e 9.
Por que não inclui o número 10?
Porque é um array, e um array sempre começa a contagem do zero.
Pacotes
Vimos que o Java agrupa as classes por pacotes. O import diz ao compilador onde encontrar o pacote para trazer a classe que precisamos. É como mandar um e-mail para uma pessoa, devemos saber o seu nome, que é tudo que vem antes do arroba e depois o domínio, que seria o pacote.
É muito comum em projetos web, encontrar pacotes como br.com.cursojavanow, nesse exemplo digamos que o site cursojavanow está em Java, e o projeto está dentro desse pacote.
Wildcards
Dá para importar todas as classes de um pacote.
1 2 3 4 5 6 7 |
import java.util.*; // importa todas as classes do pacote java.util public class MyClass { public static void main(String args[]) { Random r = new Random(); System.out.println(r.nextInt(10)); } } |
O que é chamado de wildcard é o asterístico (*), esse tipo de import não vai trazer subpacotes, somente as classes que estão dentro do pacote específico.
Se eu quiser alguma classe que está dentro do pacote concurrent, mas esse pacote está dentro do pacote util, não adianta apenas fazer o import java.util.*. Precisamos fazer os dois imports.
import java.util.*;
import java.util.concurrent.*;
Mas importar arquivos que nem vou usar vai deixar o sistema mais lento?
Não, porque na execução do sistema o Java somente irá importar os pacotes e classes necessários para executar o programa.
Deixe um comentário