Introdução ao Java Gabriel Santos Prefácio Este documento não pretende ensinar o Java, mas tão-somente dar a conhecer ao leitor esta tão poderosa e simples linguagem de programa ção. O Java é uma linguagem de programação multi-plataforma . Isto significa que o programador pode escolher para o seu ambiente de desenvolvimento um único sistema operativo e fazer correr a sua aplicação sobre uma variedade de sistemas de base . Pré-requisitos Para o nosso suporte de trabalho vamos utilizar o Windows 2000 e o Java 2 Standard Edition 1.4.2 -0 3. O Java não é muito exigente em termos de recursos, pois vamos trabalhar na versão para a linha de comandos. Se se preferir programar num ambiente gráfico como o NetBeans, a escolha é sua ; n o entanto fique desde já avisado que qualquer ambiente de desenvolvimento gráfico consome recursos e o NetBeans não foge à regra ; se o seu computador tiver apenas memória pouco mais do que para correr o Windows, então o melhor é reconsiderar a sua opção. Programar é um processo tedioso, ter um editor de texto (não confundir com processador de texto), como o “Notepad”, pode revelar ser útil, quanto mais não seja só para editar e imprimir programa s. De facto existe editores de texto muito poderosos, mas aqui não cabe analisá-los. Ter uma ligação à “Internet”, ou um amigo com acesso à “Internet”, também é importante, porque o tamanho do programa de instalação do Java ronda os 50MB. É claro que, se tiver uma linha lenta e muito tempo disponível para descarregar o programa , a questão também fica solucionada. Neste módulo não iremos ver a programação do Java para Rede de Computadores, por isso depois de o descarregar para o seu computador a conexão para a “Internet” já não vai ser precisa. Pág. 1 Introdução ao Java Gabriel Santos Onde é que se obtém o Java? O Java pode ser obtido no “site” da Sun (http://java.sun.com/j2se/1.4.2/download.html ); escolha o “Java 2 Platform, Standard Edition, v1.4.2 (J2SE)”, indicada na figura1. figura 1 Depois de clicar no “DOWNLOAD”, leia atentamente o “license agreement” para saber das condições de utilização. Dê a sua anuência e prossiga para o próximo ecrã . Escolha o “Windows Offline Installation, Multi-language”. Para informações mais detalhadas, consulte a nota de instala ção oficial da Sun “http://java.sun.com/j2se/1.4.2/install-windows.html”. Instalação do Java Partimos do princípio que o programa de instalação do Java foi descarregado pa ra a directoria “c:\source\j2se14203” e que o ficheiro se chama “ j2sdk-1_4_2_03 -windows -i586-p.exe ”. A instalação é extremamente simples. Basta correr o programa de instalação e aceitar as opções por omissão. Para facilitar futuros “upgrades” do Java, mude o nome da directoria sugerida para “c:\java”. Depois de concluir, rearanque (“reboot”) o sistema. Para finalizar o processo de instalação , acrescente à variável de ambiente do utilizador “PATH” , o caminho completo que vai dar à directoria “bin” do programa Java recém instalado. Pág. 2 Introdução ao Java Gabriel Santos Só para relembrar que instalámos o Java na directoria “c:\java”, então adicione o caminho como indicado na figura 2. figura 2 Para confirmar se a instalação está bem feita , corra na caixa de comandos a seguinte instrução: “ja va – version” (sem as aspas), como é exemplificado na figura 3. figura 3 Se der um erro após a execução da instrução, então é muito provável que a janela , utilizada para introduzir a instrução, já estava aberta, antes de adicionar o caminho na variável de ambiente. Para resolver o problema, basta fech á -la e repetir o comando numa nova janela de comandos. Nota: Não se esqueça que estamos a trabalhar no ambiente Windows 2000. Para o Win9x ou o Me a configuração da variável de ambiente é ligeiramente diferente, mas a nota de instalação da Sun (http://java.sun.com/j2se/1.4.2/install-windows.html ) é muito minuciosa nesse aspecto. Agora, o Java já deve esta r operacional e pronto para ser utiliza d o . Pág. 3 Introdução ao Java Gabriel Santos Introdução O Java é uma linguagem de programação orientada para objectos. A estrutura é muito semelhante à do C ou C++, contudo o Java não permite certas veleidades que o C ou C++ permitem. A seguir está um exemplo que ilustra como o C não verifica qu e o conteúdo da variável origem não cabe no espaço de memória da variável destino. main() { char *s = "HotJava is Cool!"; char t[] = "Java is Cool!"; printf("%s, %s\n", s, t); myStrCopy(t, s); printf("%s, %s\n", s, t); } int myStrCopy (char *dest, char *src) { for ( ; *src != '\0'; src++, dest++) *dest = *src; } Nota: O compilador C++, versão 5.5, da Borland é gratuito e suficiente para o nosso propósito . Para mais informações e como descarregá -lo para o seu computador pode seguir o “web link” que se segue: www.borland.com/products/downloads/download_cbuilder.html Se já testou o código anterior então deve ter notado que à frente da última frase apareceu uns caracteres a mais. A figura 4 ilustra o exemplo (o programa foi compilado na directoria “c:\temp”, com o nome teste). figura 4 O Java não teria deixado passar esta traquinice! A versatilidade, a portabilidade e a segurança são marcas que destacam o Java de outras linguagens de programação. Estas qualidades são também, sem dúvida, muito bem aceites no ensino e no mundo comercial. Pág. 4 Introdução ao Java Gabriel Santos Primeiro programa em Java Para começar vamos criar um ficheiro chamado “Hello .java”, com o “Notepad”, na directoria “c:\exer” . Na folha branca do editor de texto, escreva o programa que se segue e depois grave-o. public class Hello { public static void main(String[] args) { System.out.println("Hello World!"); } } Neste momento já tem o seu código fonte. O passo seguinte é compilá -lo. Abra uma janela de linha de comando s e mude a directoria activa para “c:\exer” (execute “cd \exer”, para mudar de directoria). A seguir execute “javac Hello.java”, para compilar o código fonte . O que o compilador vai fazer, é criar um ficheiro chamado “Hello.class”; a esse ficheiro “.class” dá -se o nome de “bytecode”. Para fazer correr o programa basta executar o comando “java Hello”. Qual foi o resultado? O programa deve ter escrito “Hello World!”, como é ilustrado na figura 5. figura 5 Nota: Há que ter em atenção que o Java é sensível à capitalização. Pois “Hello.java” é diferente de “hello .java”. Esquematizando o processo, genérico, de cria ção de um ficheiro executável Java : Editor Código Fonte Compilador Bytecode Interpretador Notepad Hello.java javac Hello.class java Livrarias Pág. 5 Hello World! Introdução ao Java Gabriel Santos Um presente Como foi dito na intro dução, o Java é uma linguagem de programa ção orientada para objectos, isto significa que quando o programador está a conceber uma aplicação em Java, ele está a levar em conta que os blocos de programa ção devem comportar-se como se fossem objectos. Muito abstracto! Então estamos no bom caminho. Imagine-se que está a receber um presente do seu amigo. Ao abrir o embrulho encontra um pacote (“package”). Dentro do pacote encontra vários ob jecto s (“object” ) e cada objecto pertence a uma classe (“class”) diferente . O s objecto s têm canais de comunicação que deve m servir para comunica r (“message” ) entre eles; um dos objectos pe rmite fazer qualquer coisa (“ method”), bastando para isso inse rir umas moedas na sequência correcta (“parameter” ) numa ranhura . Premissa: O pacote mais importante de toda a linguagem de programa ção Java é, sem dúvidas, o “ java .lang ”. Dentro desse pacote pode se encontrar várias classes e uma delas, o “object ”, é a raiz de todos os objectos. No exemplo, “System.out.println("Hello World!");”, “System.out” é um objecto da classe “PrintStream” que tem implementado um método chamado “println”. O “println” está a aceitar como parâmetro “Hello World!”; o “println ” tem como finalidade canalizar os seus parâmetros para a sa ída padrão (“standard ouput”), que normalmente é o ecrã . O println(“Hello World!”) constitui, por sua vez, a mensagem. O “Hello World!”, na realidade, tamb ém é um objecto e pertence à classe do “String”, ou seja, qualquer método da classe “String” p ode ser aplicado ao “Hello World!”. O ra vejamos, o “String” tem um método chamado “length”, isto significa que o “length” pode ser aplicado ao “Hello World!”. Tente alterar programa anterior da seguinte forma: public class Hello { public static void main(String[] args) { System.out.println("Hello World!".length()); } } Consegue prever o resultado? Muito bem, o programa escreve 12 no ecrã . Pág. 6