Classes versus Arquivos
Na maioria das vezes, cada classe Java é definida pelo arquivo *.java. Normalmente é pública, que significa que qualquer código pode invocá-la. Curiosamente, Java não requer que a classe seja pública. Se você não sabe ou não lembra as declarações de uma classe visite: http://bit.ly/2FOXbOb. Um exemplo de classe sem declaração.
class Animal{
String name;
}
Você pode colocar duas classes no mesmo arquivo. Quando é feito isto, no máximo uma das classes é permitido ser pública. Exemplo:
public class Animal{
private String name;
}
class Animal2{
}
Se você tem uma classe pública o arquivo deve ter o mesmo nome, pegando o exemplo anterior, se você nomear o arquivo para Animal2 o programa não irá compilar.
Escrevendo um Método main()
Um programa Java começa executando o método main(). Um método main() é uma ponte entre o começo dos processos do Java, o qual manipula a Java Virtual Machine(JVM), e o começo do código do programador. A JVM conversa com o sistema operacional para alocar memória e tempo de CPU, acessos de arquivos e assim por diante.
O método main() nos prende neste processo, mantendo o nosso código rodando. Uma simples classe com um método main() se aparece assim:
public class Zoo{
public static void main(String[] args){
}
}
Este código não faz nada útil. Não há outra instrução a não ser o começo (o ponto de partida). Todo código Java deve ter esta instrução, senão não irá fazer compilação do programa. Para compilar este exemplo deve-se fazer a seguinte instrução:
javac Zoo.java
java Zoo
Se não aparecer nenhum erro, você conseguiu compilar e executar um programa Java. Se apareceu algum erro, veja se você tem o JDK instalado. Fiz um vídeo mostrando a instalação do JDK http://bit.ly/aula3CJ e outro mostrando a compilação e execução http://bit.ly/aula4CJ.
Para compilar um programa você deve ter um arquivo .java. O nome do arquivo deve ser o mesmo da classe. O resultado da compilação será um arquivo bytecode com o mesmo nome, mas com a extensão .class. Bytecode é a instrução para a JVM saber o que deve ser feito. Para executar o programa depois de compilado não se deve colocar nenhuma extensão depois da palavra java, como no exemplo: java Zoo. É errado colocar por exemplo, java Zoo.class ou java Zoo.java.
Vamos revisar as regras:
- Cada arquivo deve ter uma única classe principal, mesmo aqueles que tem mais de uma classe, a principal será a pública.
- O nome do arquivo deve ser o mesmo da classe e deve ter extensão .java.
Vamos dar uma olhada novamente no método main(). A keyword public é o que chamamos de modificador de acesso(access modifier). Esta declaração expõe o arquivo para que outros o invoque, ou seja, possa ser acessado de qualquer parte do programa.
A keyword static permite que o método seja invocado apenas pelo nome da classe, por exemplo, Zoo.main(). Desta maneira o Java não precisa criar um objeto para chamar o método main(). Não sabe o que é um objeto? Veja o artigo http://bit.ly/2FNRIqG. Se o método main() não estiver presente na classe principal do programa, você verá uma mensagem de erro. Se o método main não for static, um erro também será apresentado.
A keyword void representa um tipo de retorno(return type). Um método que não retorna nenhum tipo de dado para o seu invocador. Nós temos no método main() uma lista de parâmetros que é um array do Java o String[] args. Há outras maneiras de escrever este array, String args[] ou String… args; o compilador aceita qualquer um deles. A variável args representa os valores que a lista contém, estes valores podem ser lidos quando a JVM inicia. A variável não precisa chamar args, mas por padrão todos deixam com este nome. Os [] representa o array. Um array é uma lista de tamanho fixa que contém valores do mesmo tipo. A outra representação de um array é o (…) que é chamado de varargs.
Agora vamos fazer alguns testes.
public class Zoo{
public static void main(String[] args){
System.out.println(args[0]);
System.out.println(args[1]);
}
}
args[0] acesse o primeiro elemento de um array. Um array começa a ser contado do zero. Execute o programa:
javac Zoo.java
java Zoo Bronx Zoo
A saída dever ser:
Bronx
Zoo
O programa identificou corretamente as duas palavras passadas como argumento. Os espaços entre elas são utilizados para separar os argumentos. Se precisar de espaço em uma palavra do argumento você precisa usar aspas.
javac Zoo.java
java Zoo “San Diego” Zoo
A saída deve ser:
San Diego
Zoo
Todos os argumentos são tratados como objetos String, mesmo que representem outros tipos.
javac Zoo.java
java Zoo Zoo 2
A saída deve ser:
Zoo
2
O programa espera dois argumentos e se eu passar só um. O que acontece?
javac Zoo.java
java Zoo Zoo
O Java irá ler o primeiro argumento, mas quando for ler o segundo…
Gera uma exceção porque não há nada no segundo argumento.
Lembrando que para compilar um programa você deve ter instalado na máquina o JDK, mas se for só executar um programa você precisa apenas do JRE, que é o Java padrão que todos instalam na máquina. Para executar um programa Java basta a máquina ter o Java instalado, não importa qual o sistema operacional esta máquina estiver operando já que o programa roda na JVM.
Livro fonte: OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide: Exam 1Z0-808 (English Edition)
Curso de Desenvolvimento Web Completo
Curso Java Para Iniciantes
#java #certificação
Deixe um comentário