Introdução ao JDK

Eduardo Wanderley, Milena Rocha e Paulo Borba

Centro de Informática

Universidade Federal de Pernambuco

 


Siga o seguinte roteiro de aula:

1. Por enquanto, assumiremos que em Java cada arquivo deve conter apenas uma classe. Assim, para definir uma nova classe, crie um novo arquivo e digite o código Java no mesmo. Por exemplo, veja a definição da classe Conta e tente entender o seu conteúdo.

Note que o texto que aparece entre "/*" e "*/" (pode ocupar várias linhas sem problemas) ou depois de "//" (até o final da linha),ou ainda entre "/**" e "*/" são comentários, ou seja, informações que não são relevantes para o compilador nem para o computador, mas são relevantes para facilitar o entendimento e modificação do código por parte de um programador. O último tipo de comentário mencionado serve para geração automática de documentação com a ferramenta javadoc, como veremos mais adiante.

No código de Conta também é usado o modificador public que, ao contrário de private,  permite que uma declaração possa ser acessada de qualquer outra classe.

2. Cada arquivo deve ser salvo com o mesmo nome da classe definida no mesmo, inclusive usando   as mesmas letras maiúsculas e minúsculas utilizadas no nome. Por exemplo, se você declarou a classe Cliente, você tem que salvar o arquivo como "Cliente.java". Observe que a classe Conta foi criada no arquivo "Conta.java".  Salve este arquivo e os outros necessários para esta aula na sua área de trabalho. Analise estes arquivos.

3. Em Java você segue dois passos básicos para executar (rodar) um programa:

1° passo: Você necessita compilar o programa para transformar o código fonte (.java) em "bytecodes” (.class, código nativo da JVM, a máquina virtual Java), conforme ilustrado na figura abaixo. Os erros gerados pelo compilador são chamados de erros de compilação, ou erros em tempo de compilação.  

Introd1.jpg (7504 bytes)

2° passo: Depois de criado os “bytecodes”, você deve interpretá-los para que o    programa seja, de fato, executado, conforme ilustrado abaixo. Os erros gerados durante a interpretação são chamados de erros (de tempo) de execução

Introd2.jpg (9931 bytes)

4. Veja agora alguns comandos disponíveis no JDK (Java Development Kit), o kit básico com ferramentas para programação em Java:

5. Abra o JDK 1.3 (clique no botão start, no canto inferior esquerdo da tela, e selecione a opção Programs, depois Linguagens, depois Java, e finalmente JDK 1.3).

6. Compile a classe Conta usando o comando javac. Para compilar a classe, você deve setar o JDK para o diretório onde o arquivo .java se encontra e digitar a seguinte instrução:

javac nomeDoArquivo.java

Este é o funcionamento básico do javac, mas podemos passar para o comando opções que mudam ligeiramente o comportamento do mesmo. Por exemplo, podemos chamar o javac assim:

javac [-opções] nomeDoArquivo.java

onde opções são, entre outras (para ver as outras digite simplesmente javac na janela do JDK), as seguintes:

-deprecation (mostra quais são os métodos da API de Java que foram usados no programa compilado mas que não deveriam ter sido usados, pois não serão disponíveis em novas versões do JDK)

-classpath nomesDosDiretórios (indica ao javac os diretórios aonde se encontram as classes auxiliares que são necessárias para a compilação de nomeDoArquivo.java, cancelando a indicação definida na variável de ambiente CLASSPATH. Se nenhum CLASSPATH ou "-o classpath" é especificado, as classes auxiliares têm que estar no diretório atual)

Mais detalhes sobre o javac, as suas opções, a variável CLASSPATH, e as outras ferramentas do JDK podem ser encontradas na documentação do JDK.

7. Verifique os erros apresentados pelo javac. Note que os mínimos detalhes são observados pelo javac, assim temos que escrever o programa exatamente do jeito que ele requer. Note que ele mostra a linha aonde o erro aconteceu e explica a razão do erro, tudo em Inglês.

8. Corrija os erros apresentados modificando o arquivo "Conta.java" e compile de novo até que o javac não apresente mais erros. Note que todas as classes que são usadas pela classe conta devem ser compiladas antes da mesma, para que sejam gerados seus arquivos .class os quais vão ser usados durante a compilação da classe Conta. Veja então que ele gerou o arquivo "Conta.class" com os "bytecodes" correspondentes ao código Java. O javac traduziu o programa de Java para a linguagem da JVM.

9. Interprete os “bytecodes” criados com a compilação. Para interpretar (ou executar), você digita

java nomeDoArquivo

no diretório contendo o arquivo "Conta.class". Leia antes o método main da classe Conta para entender qual vai ser o comportamento do programa durante a execução. Em particular, digite as informações solicitadas pelo programa, no caso primeiro um double e depois uma String. Note que o que você digita automaticamente aparece na janela, mesmo sem o programa ter instruções para isso; o sistema operacional se encarrega de fazer isto.

Este é o funcionamento básico do comando java do JDK, mas podemos passar para o comando opções que mudam ligeiramente o comportamento do mesmo. Por exemplo, podemos chamar o comando java assim:

java [-opções] nomeDoArquivo

onde entre várias opções temos a seguinte:

-classpath nomeDoDiretório (indica ao javac os diretórios aonde se encontram os "bytecodes" das classes auxiliares que são necessárias para a execução de nomeDoArquivo.java, cancelando a indicação definida na variável de ambiente CLASSPATH. Se nenhum CLASSPATH ou -o classpath é especificado, os "bytecodes" das classes auxiliares têm que estar no diretório atual)

Mais detalhes sobre o javac, as suas opções, a variável CLASSPATH, e as outras ferramentas do JDK podem ser encontradas na documentação do JDK.

10. Verifique se a saída gerada pelo programa na janela do JDK é realmente o que você esperava que o programa gerasse. Execute de novo o programa, digitando novos valores e verifique de novo se a saída está de acordo com o esperado. Note que você não precisou compilar o programa novamente para executá-lo.

11. Acesse a API (Application Programming Interface) Java e veja quais são os métodos da classe String que podem ser usados para gerar uma substring. Quais são os parâmetros de cada um destes métodos? Verifique se esses métodos levantam exceções. Altere o método main da classe Conta para que o número da conta a ser criada não seja exatamente a string lida do teclado, mas sim uma substring desta, sem o primeiro caracter. Veja que quando um método levanta uma exceção a execução do programa termina; depois aprenderemos como tratar estas para que o programa não termine.

12. Note que para utilizar alguma classe da API de Java basta escrever o comando import, como na classe ContaData, que usa a classe Date da API. No entanto, veja que String é uma classe da API mas não foi necessário importá-la pois ela é do pacote (mais adiante no curso veremos o que é exatamente um pacote) java.lang, que é implicitamente importado por qualquer programa em Java. Analise a classe ContaData e note tudo que foi modificado em relação à classe Conta.

13. Gere a documentação HTML da classe Conta. Para fazer isso utilize a ferramenta javadoc, da seguinte forma:

javadoc nomeDoArquivo.java

Este é o funcionamento básico do javadoc, mas podemos passar para o comando opções que  mudam ligeiramente o seu comportamento. Por exemplo, podemos chamar o javadoc assim:

javadoc [-opções] nomeDoArquivo.java 

onde opções, entre outras, são as seguintes:

-public (opção para mostrar apenas as classes e métodos públicos)  

-d nomeDoDiretório (especifica o local aonde o javadoc vai salvar os arquivo HTML; o default é salvar no mesmo diretório onde os arquivos estão localizados)

14. Verifique se a documentação foi criada no local que você pediu. Veja que foram criados vários arquivos HTML. Abra o arquivo "index.html" usando um browser qualquer.

15. Escreva um main bem mais completo do que o apresentado e que exercite e teste exaustivamente todos os métodos da classe. Por exemplo, passe parâmetros null, compare valores, crie objetos de diferentes nomes e passe valores de tipos diferentes para ver como o JDK vai se comportar.

16. Repita os passos de 6 até 10 para este novo método main.