Escolar Documentos
Profissional Documentos
Cultura Documentos
Preparativos iniciais
Esta prtica supe que JDK (Java Standard Edition Development Kit). Caso no esteja, instalemos 1. Abra um terminal 2. Teste o compilador Java, digitando javac. Se uma mensagem grande, iniciada por Usage: javac <options> <source files> for impressa, ento o compilador foi executado. Seno, uma mensagem de erro ser apresentada.
4. Explicao do programa: A linha 1 contem um comentrio, pois iniciada com // . A linha 2 contem a declarao da classe OlaUfabc. Por enquanto suficiente entender que uma classe precisa das palavras reservadas public e class e que OlaUfabc um nome qualquer, mas que como ser visto adiante, precisa ser igual ao nome do arquivo que vai conter a classe. 1
Na linha 3, o caractere { (abre chaves) indica que tudo o vem a seguir pertence classe OlaUfabc, at o seu encerramento com }. A linha 4 declara o mtodo principal (main) dessa classe, que ser executado quando o programa for iniciado. A declarao public static void main(String args[]) necessria exatamente desta forma (com o tempo, cada palavra ser compreendida, mas por enquanto suficiente saber que isso necessrio). Nem todas as classes precisam ter um mtodo main. Na linha 5, o caractere { (abre chaves) indica que tudo o vem a seguir pertence ao mtodo main, at o seu encerramento com }. A linha 6 contem o comando System.out.println(Viva UFABC em Linux); que imprime na tela (linha de comando) a mensagem Viva UFABC em Linux. System.out um objeto de sada padro e println um mtodo que imprime um string (conjunto de caracteres) e passa para a prxima linha. Existem outros mtodos para imprimir na tela como ser visto a seguir, alm de mtodos para imprimir em janelas grficas. Repare que no foi usada a crase, como seria necessrio em bom portugus. No entanto, existem alguns problemas com relao acentuao, principalmente quando se lida com programas que executam em linha de comando. Todos que j acessaram endereos na Internet, sem pontuao e cedilhas j experimentaram isso. As linhas 7 e 8 encerram o mtodo main e a classe OlaUfabc, respectivamente.
5. Salve o programa com o nome OlaUfabc.java, sem as aspas em uma pasta de fcil acesso, como home/ufabc/Desktop/. A extenso .java obrigatria em programas Java. O nome antes da extenso deve obrigatoriamente ser igual ao nome da classe public, observando que existe diferena entre letras maisculas e minsculas. Em ingls, diz-se que Java case sensitive porque o compilador sensvel a diferenas entre letras maisculas (upper case) e minsculas (lower case). Um arquivo pode conter vrias classes, mas apenas uma delas deve ser declarada como public. Entretanto, desaconselhado usar essa prtica de programao, ou seja, recomenda-se usar apenas uma classe public em cada arquivo .java.
Observe que a extenso .class no deve ser includa no nome do arquivo. Caso contrrio, ocorrer um erro.
15. Erros de sintaxe (escrita) no programa. Retire o caractere ; (ponto de virgula) do final da linha System.out.println(Viva UFABC em Linux);. jpgois@paranoid-android:Desktop:~/javac OlaUfabc.java OlaUfabc.java:8: ';' expected } ^ 1 error Essa mensagem reclama da falta do ;. Uma pergunta que surge facilmente : por que ele diz que o problema na linha 8, antes do } e no na linha 7, depois do )? A reposta que o ; no precisa necessariamente estar no final da linha e o compilador o procura nas prximas linhas at encontrar algo que no devia estar l, no caso o }. Experimente incluir o ; antes do } na linha 8 ou abrir uma linha depois da linha 7 e antes da linha 8 atual e incluir somente o ;, para confirmar como isso funciona. No entanto, no considerada uma boa prtica de programao, porque dificulta a legibilidade e compreenso do programa. 16. Experimente introduzir outros erros de sintaxe, como por exemplo, remover o } final ou alterar uma palavra public para publica.
Compile o programa. O resultado deve ser igual ao programa anterior, porque o mtodo print imprime a mensagem, mas no passa para a prxima linha 20. Substitua agora o mtodo print por println e veja o resultado. As mensagens Viva UFABC em e Linux devem ser impressas em linhas diferentes agora. 21. Usando o mtodo printf, para obter uma sada formatada. O printf consegue tratar de diferentes tipos de dados e no apenas strings (conjuntos de caracteres). Edite o arquivo chamado MeuPrograma.java criado anteriormente e faa as modificaes indicadas a seguir. 22. Pulando de linha com a seqncia de escape \n. Use o comando printf da seguinte forma: 6 System.out.printf("Viva UFABC em Linux\n "); O \n dentro do printf informa que a sada deve passar para a prxima linha. Insira outros \n em outros pontos da mensagem para ver o efeito. Existem outras seqncias de escape, como \t, \r e \\. Experimente-as. Observe que essas seqncias funcionam tambm com print e println, mas so mais freqentemente usadas com printf (por conta das origens na linguagem C). 23. Usando a sada formatada. Transforme a linha de impresso anterior em um comentrio (com //) e digite esta: System.out.printf("%s\n%s\n", " Viva UFABC ", " em Linux "); Agora o mtodo printf est sendo invocado (usado) com 3 argumentos, separados por vrgulas. O primeiro argumento contm o string de argumento composto de especificadores 4
de formato (iniciados por %) e seqncias de escape. Nesse caso, %s significa que vai ser formatado um string. Repare que existe dois %s no string de argumento e outros dois argumentos aps ele. necessrio que haja um casamento entre a quantidade de especificadores de formato e de argumentos aps o string de argumentos. Existem outros especificadores de formato, como para nmeros inteiros (%d) e reais (%f). 24. Novamente comente a linha de impresso anterior (com //) e digite esta: System.out.printf("%s\n%s%d\n%s%f\n", "Nome: Maria", "Idade: ", 19, "Altura: ", 1.69); Repare agora que a seqncia representa a formatao da sada e ficou mais complexa %s\n%s%d\n%s%3.2f\n. Existem cinco especificadores de formato e cinco argumentos aps o string de argumento. Os tipos dos especificadores devem coincidir com os tipos dos argumentos, ou seja, por exemplo %s com Idade: , %d com 19 e %f com 1.69. Experimente trocar a idade (19) por um nome, para observar um erro de execuo. Porm, nem sempre ocorrem erros desse tipo para nos avisar, porque Java tenta fazer converso de tipos em tempo de execuo. Algumas vezes o programa fica com um erro de lgica e pode imprimir resultados incorretos, inclusive em relatrios importantes (imagine, no balano de uma empresa, ou nome seu contra-cheque!). Para a altura ser impressa apenas com duas casas decimais, substitua %f por %.2f. Outra maneira de obter o mesmo efeito, mas misturando as mensagens com o string de argumento e separando dos verdadeiros valores : System.out.printf(Nome: %s\nIdade: %d\nAltura: %3.2f\n, Maria", 19, 1.69);