Explicações de Java eduardoleal.com Capítulo 1: Introdução. Saída e entrada de dados Índice de Conteúdos 1. Introdução. Saída e entrada de dados. 2. Instruções condicionais. Vetores e ciclos. 3. Programação orientada a objetos. Classes. 4. Bibliotecas. Nova entrada e saída de dados. 5. Ficheiros. 6. Estudo Futuro Lista dos Cursos Online Pág. 1 de 8 Explicações de Java eduardoleal.com Capítulo 1: Introdução. Saída e entrada de dados 1.1. Instalar um compilador Java Frequentemente encontrará páginas na Internet que necessitam de Java instalado para funcionarem do modo pretendido pelo autor da mesma. Essa instalação a que me refiro permitirá aceder a páginas que usam Java mas não é suficiente para programar em Java. Para programar em Java precisa de instalar um compilador Java. Pderá fazê-lo do seguinte modo: No Ubuntu: (a partir da consola, ser-lhe-á pedida a palavra-passe de root) $ sudo apt-get install openjdk-7-jdk No Windows: Aceder ao site http://www.oracle.com/technetwork/java/javase/downloads/index.html e carregar no botão Java Platform (JDK). Seguir as instruções. Depois de instalado um compilador Java pode escrever os seus programas Java usando no Ubuntu, por exemplo o editor de texto Gedit, ou, no Windows, o editor de texto Bloco de Notas. Existem ambientes de desenvolvimento integrado (IDE) que permitem escrever os programas de modo mais fácil, por exemplo, NetBeans ou Eclipse. Nestas notas não será focado o modo de os usar, apenas como programar, compilar e executar «manualmente». 1.2. Saída de dados O Java é uma linguagem de programação completamente orientada a objetos. No capítulo 3 explicar-se-á o significado disto mas, para já, há uma consequência imediata disto: todos os comandos aparecerão ligados a alguma classe. Por exemplo, no programa inicial, para imprimir texto no monitor é usada a função println() mas usando a instrução System.out.println(). Escreva o código abaixo e guarde num ficheiro de texto não formatado, Progcap1_001.java. Código Progcap1_001.java Lista dos Cursos Online Pág. 2 de 8 Explicações de Java eduardoleal.com Neste ficheiro existe uma única classe chamada Progcap1_001 e declarada como sendo public. Num ficheiro podem existir várias classes mas só uma pode ser public e o nome do ficheiro deve ser igual ao nome dessa classe public e deve possuir extensão java. Assim como a classe chama-se Progcap1_001 então o ficheiro chamar-se-á Progcap1_001.java. Dirá respeito a esta classe todo o código que se escrever entre as chavetas da instrução: public class Progcap1_001 { } Neste primeiro exemplo, dentro da classe é definida uma função chamada main(): public static void main(String args[]) { } Obrigatoriamente, a função que será executada quando o programa arrancar é a função main(). À esquerda do nome da função aparecem três palavras: public, static e void. Na função main() não há escolha possível, tem de ser definida como sendo public, static e void. O significado de public e static só será clarificado no capítulo 3. Quanto a void, significa que a função não retorna qualquer valor. Entre os parênteses a seguir ao nome da função aparece uma variável respeitante aos parâmetros introduzidos na prompt ao executar o programa. Mesmo que não sejam introduzidos parâmetros é preciso declarar essa variável desse modo. Ainda neste primeiro capítulo será estudado este pormenor. A instrução que faz com que apareça no monitor o texto é então: System.out.println(“Este é o meu primeiro programa em Java!”); Note que a instrução termina com um ponto e vírgula. Para compilar o programa use na prompt: $ javac Progcap1_001.java Se tudo correu bem deverá ter sido criado o ficheiro Progcap1_001.class. De seguida, para executar o programa use na prompt: $ java Progcap1_001 Na figura abaixo aparece o resultado esperado. Execução Progcap1_001 Repare-se que, depois do texto «Este é o meu primeiro programa em Java!» o dólar para sinalizar a prompt aparece na linha seguinte. Isto é consequência de se ter usado a função println() pois não teria acontecido caso fosse usada a função print(). Tome também nota que o acento na palavra «é» ficou bem impresso. Isto depende de vários fatores: sistema operativo, configuração do teclado, etc... . Se isso não Lista dos Cursos Online Pág. 3 de 8 Explicações de Java eduardoleal.com acontecer no seu caso então o melhor será não os colocar até que consiga resolver esse problema. 1.3. Tipo de dados Durante a sua execução o programa guarda informação em variáveis. Declarar uma variável é indicar o tipo dessa variável. No programa Progcap1_002.java listam-se os principais tipos de dados que uma variável pode assumir em Java. Numa linha, o texto escrito depois de // é ignorado pelo compilador, são os comentários. Escreva o código e grave num ficheiro chamado Progcap1_002.java. Código Progcap1_002.java Como no programa anterior cada instrução termina com ponto e vírgula e pode escrever-se mais do que uma instrução por linha. Este programa tem três seções: declaração de variáveis, inicialização de variáveis e saída de dados. Todas as variáveis têm que ser declaradas embora não seja obrigatório que essa declaração seja no ínicio do programa. Por exemplo, na linha: int neg, pos; // -2147483648 a 2147483647 declaram-se duas variáveis do tipo int que serão identificadas por neg e pos. Nestas variáveis podem Lista dos Cursos Online Pág. 4 de 8 Explicações de Java eduardoleal.com guardar-se valores inteiros entre -2147483648 e 2147483647, inclusivé. Na seção inicialização de variáveis são atribuidos valores às variáveis. Por exemplo, na linha: x = 2.321f; é guardado na variável x o valor 2,321. O Java interpreta 2,321 como sendo do tipo double mas como a variável x é do tipo float usa-se o f no final. Na linha: y = -123.21; já não há necessidade de acrescentar nenhuma letra no final. Na terceira seção, saída de dados, usa-se, como no programa anterior, a função println() para apresentar dados no monitor. O sequência \t permite introduzir um caráter de tabulação. O sinal + é uma operação com duas sequências de texto, a concatenação, e faz a justaposição dessas sequências de texto. Mesmo quando se usam variáveis de outro tipo o java automaticamente trata como sendo texto. Proceda como anteriormente, para compilar e executar. Na figura abaixo aparece o resultado esperado. Execução Progcap1_002 Na linha: System.out.println("O produto de "+x+" por "+y+" é "+x*y); usa-se x*y para multiplicar o valor de x pelo valor de y. Como um fator tem três casas decimais e o outro tem duas casas decimais então o resultado terá cinco casas decimais: -285,97041. Usando x*y o resultado aparece com 13 casas decimais porque o java converte o resultado para double. Na linha seguinte: System.out.println("O produto de "+x+" por "+y+" é "+x*((float) y)); usa-se (float) para converter o valor de y para float e assim o resultado já aparece com cinco casas decimais. No entanto, o resultado também não tem todas as casas decimais corretas. Este exemplo serve para chamar a atenção para o trabalho com números com casas decimais em trabalhos de precisão. Lista dos Cursos Online Pág. 5 de 8 Explicações de Java eduardoleal.com 1.4. Entrada de dados Com o programa seguinte pretende-se conhecer um pouco o tipo de dados char, caráter. Código Progcap1_003.java A cada caráter está associado um número inteiro, de 0 a 127, designado por código ASCII (American Standard Code for Information Interchange). Compile e execute o programa para observar: Execução Progcap1_003 Na variável c, que é do tipo char, guardou-se o caráter '0' e, ao imprimir, aparece o caráter '0'. Na variável n que é do tipo int, guardou-se também o caráter '0' mas, ao imprimir, aparece o número 48, que é o código ASCII do caráter '0'. De modo análogo para o caráter 'A'. Note-se que os carateres são escrito no código entre plicas, ' '. Não confundir com as aspas que temos usado no texto na função println(), e que mais tarde chamaremos de strings. Este exemplo permite compreender melhor o que vai ser feito. Em capítulos posteriores serão abordadas várias formas de introduzir dados no funcionamento do programa. Para já vamos usar a função read() para esse efeito. Como já acontecia com a função println() é Lista dos Cursos Online Pág. 6 de 8 Explicações de Java eduardoleal.com preciso uma intrução mais completa, System.in.read(), para ter acesso à função. O programa seguinte pede ao utilizador a inicial do seu último nome e depois imprime-a no monitor. Código Progcap1_004.java No programa Progcap1_004 pela primeira vez se faz uma introdução de dados pelo utilizador. Consequência imediata é a utilização do comando «throws IOException» a seguir ao nome da função main() ou de outra qualquer função onde haja introdução de dados. Para ter disponível este comando é nacessária a primeira linha do programa: import java.io.IOException; O programa começa por imprimir texto pedindo ao utilizador que introduza a inicial do seu nome. De seguida usa-se a função read() para receber o caráter introduzido pelo utilizador. Esta função devolve um inteiro e por isso usa-se: c = (char) System.in.read(); para guardar na variável c, do tipo char, o caráter associado ao código ASCII devolvido pela função read(). Compile e execute para observar algo parecido com: Execução Progcap1_004 Lista dos Cursos Online Pág. 7 de 8 Explicações de Java Lista dos Cursos Online eduardoleal.com Pág. 8 de 8