Pontifícia Universidade Católica de Minas Gerais Instituto de Informática -Departamento de Ciência da Computação Disciplina: Seminários II Introdução à Linguagem JAVA Vânia Aguiar Moura E-mail: [email protected] DCC/PUC-MG Introdução Apesar de Java ser uma linguagem que serve para vários propósitos, o seu sucesso atual (época do seu lançamento) se deve a possibilidade de elaboração de aplicações para a internet. Abordaremos uma sequência de tópicos que permite apresentar a linguagem sob a ótica da teoria de orientação a objetos. A apresentação do modelo de objetos da linguagem e conceitos relacionados tais como polimorfismo, tratamento de exceções está em primeiro plano. Ao longo dessa apresentação, em segundo plano, você aprenderá os aspectos básicos da linguagem. ® vam 2 • • • • ® vam A maioria das pessoas fica ansiosa para aprender como criar aplicações para a internet, mas depois de satisfeita esta ansiedade voltam para o ponto onde aprendem como programar na linguagem e não apenas experimentar com a criação de botões, caixas de diálogo, imagens, etc. Neste caso, é recomendável um “tour” pela WWW antes de começar a programar, um bom “site” : http://www.Javasoft.com/applets “Links” para vários applets, divididos por categorias: games, sound, busines, animation... 3 APPLETS APPLETS: São pequenos programas escritos em Java que podem ser embebidos em documentos hipetextos. São exemplos de applets: animações, imagens, botões, etc. Applets podem suportar efeitos de multimidia como sons, iterações com o usuário (mouse, teclado), imagens, animações, gráficos, etc. ® vam 4 Aplicações com JAVA Java é excelente para desenvolver aplicações comerciais e para ser usada em universidades. Java pode ser vista como uma fusão de várias técnologias que vêm sendo desenvolvidas na área de computação, de modo que estudantes dessa linguagem tem a oportunidade de tomar contato com vários tópicos recentes. Programação concorrente, sitemas distribuídos, orientação a objetos, protocolos da internet, e uma série de outros assuntos fáceis de praticar nessa linguagem. ® vam 5 Kit de Desenvolvimento de Aplicações Um ambiente de programação Java é normalmente composto de um kit de desenvolvimento de aplicações Java e um “browser compatível com esta linguagem (recomendável). Para o acesso a esse ambiente de programação, visite estes endereços: “DOWNLOAD” JAVA http://Java.sun.com . Raiz do hipertexto montado pelos criadores da linguagem. Sob este endereço você pode obter o compilador e outras ferramentas de desenvolvimento de aplicações Java para a sua plataforma de programação. Fique atento! Outros desenvolvedores estão criando ambientes de programação Java. “DOWNLOAD” “BROWSERS” ® vam http://www.netscape.com Raiz do hipertexto montado pelos criadores do Netscape Navigator. Sob este endereço você pode obter o browser “Java compatible” da “Netscape Comunications INC’.. Outros desenvolvedores estão lançando “browsers” compatíveis com Java. 6 Características da Linguagem Parecida com C, C++: ® vam Java tem a aparência de C ou de C++, embora a filosofia da linguagem seja diferente. Por este motivo estaremos frequentemente fazendo comparações alguma destas linguagens. Java também possui características herdadas de muitas outras linguagens de programação: Objective-C, Smalltalk, Eiffel, Modula-3, etc. Muitas das características desta linguagem não são totalmente novas. Java é uma feliz união de tecnologias testadas por vários centros de pesquisa e desenvolvimento de software. 7 Características da Linguagem Compilada: Um programa em Java é compilado para o chamado “byte-code”, que é próximo as instruções de máquina, mas não de uma máquina real. O “byte-code” é um código de uma máquina virtual idealizada pelos criadores da linguagem. Por isso Java pode ser mais rápida do que se fosse simplesmente interpretada. ® vam 8 ® vam 9 Características da Linguagem Portável: Java foi criada para ser portável. O “byte- code” gerado pelo compilador para a sua aplicação específica pode ser transportado entre plataformas distintas que suportam Java (Solaris 2.3, Windows-NT, Windows-95, Mac/Os etc) . Não é necessário recompilar um programa para que ele rode numa máquina e sistema diferente, ao contrário do que acontece por exemplo com programas escritos em C e outras linguagens. ® vam 10 Características da Linguagem Orientada a Objetos: A portabilidade é uma das características que se inclui nos objetivos almejados por uma linguagem orientada a objetos. Em Java ela foi obtida de maneira inovadora com relação ao grupo atual de linguagens orientadas a objetos. Java suporta herança, mas não herança múltipla. A ausência de herança múltipla pode ser compensada pelo uso de herança e interfaces, onde uma classe herda o comportamento de sua superclasse além de oferecer uma implementação para uma ou mais interfaces. ® vam 11 Características da Linguagem Java permite a criação de classes abstratas. Outra característica importante em linguagens orientadas a objetos é a segurança. Dada a sua importância o tópico foi escrito a parte. Segura: A presença de coleta automática de lixo, evita erros comuns que os programadores cometem quando são obrigados a gerenciar diretamente a memória (C , C++, Pascal ). A eliminação do uso de ponteiros, em favor do uso de vetores, objetos e outras estruturas substitutivas traz benefícios em termos de segurança ® vam 12 Características da Linguagem Suporta concorrência: A linguagem permite a criação de maneira fácil, de vários “threads” de execução. Este tópico é útil quando se estuda animações, e é particularmente poderoso nos ambientes em que aplicações Java são suportadas, ambientes estes que geralmente podem mapear os threads da linguagem em processamento paralelo real. Eficiente: Como Java foi criada para ser usada em computadores pequenos, ela exige pouco espaço, pouca memória. ® vam 13 PROGRAMA HELLO INTERNET! COMPILANDO UM PRIMEIRO PROGRAMA: 1-Certifique-se de ter adicionado a sua lista de // Comentario de uma linha path’s o path do compilador e interpretador Java. Javac e Java respectivamente. 2-Crie o arquivo ao lado em um diretório qualquer (“folder” para usuários mac) e salve com o nome: HelloInternet.Java public class HelloInternet { 3-Chame o compilador Java para este arquivo: Javac HelloInternet.Java public static void main (String args[]) { 4-Seu diretório deve ter recebido um novo arquivo após essa compilação: HelloInternet.class System.out.println("Hello Internet!"); 5-Chame o interpretador Java para este arquivo (omita a extensão .class de arquivo): Java HelloInternet 6-Observe o resultado na tela: Hello Internet! ® vam } } 14 Explicação passo a passo do programa exemplo: //Comentario de uma linha Comentários em Java seguem a mesma sintaxe de C++, “//” inicia uma linha de comentário, todo o restante da linha é ignorado. Existe também um outro tipo de comentário formado por /* Insira aqui o texto a ser ignorado */ , este tipo de comentário pode ser intercalado em uma linha de código. Comentários são tratados como espaços em branco. ® vam 15 Explicação passo a passo do programa exemplo: public class HelloInternet { class é a palavra reservada que marca o inicio da declaração de uma classe. Public é um especificador, por enquanto guarde public class como o início da declaração de uma classe. HelloInternet É o nome dado a esta classe. O “abre chaves” marca o início das declarações da classe que são os atributos e métodos. Esta classe só possui uma declaração, a do método main, note que um método, ao contrário de C++, só pode ser declarado {internamente} a classe a qual pertence, evitando as confusões sobre “escopo”. ® vam 16 Explicação passo a passo do programa exemplo: public static void main (String args[]) { System.out.println("Hello Internet!"); } public É um qualificador do método que indica que este é acessível externamente a esta classe (para outras classes que eventualmente seriam criadas). static É um outro qualificador ou “specifier”, que indica que o método deve ser compartilhado por todos os objetos que são criados a partir desta classe. Os métodos static podem ser invocados, mesmo quando não foi criado nenhum objeto para a classe. ® vam 17 Explicação passo a passo do programa exemplo: void Semelhante ao void C++ ou C, é o valor de retorno da função, quando a função não retorna nenhum valor ela retorna void, uma espécie de valor vazio que tem que ser especificado. Main Este é um nome particular de método que indica para o compilador o início do programa, é dentro deste método e através das iterações entre os atributos, variáveis e argumentos visíveis nele que o programa se desenvolve. ® vam 18 Explicação passo a passo do programa exemplo: (String args[]) É o argumento de main e por consequência do programa todo, ele é um vetor de Strings que é formado quando são passados ou não argumentos através da invocação do nome do programa na linha de comando do sistema operacional, exemplo: Java HelloInternet argumentotexto1 argumentotexto2. No nosso caso, ignoramos a possível passagem de argumentos via linha de comando. ® vam 19 Explicação passo a passo do programa exemplo: { ... } “Abre chaves” e “fecha chaves”. Delimitam um bloco de código. System.out.println("Hello Internet!"); Chamada do método println para o atributo out da classe ou objeto System, o argumento é uma constante do tipo String. Comando para imprimir mensagens na tela, onde o argumento que vem entre aspas é a String a ser impressa. O ; “ponto e vírgula” separa operações. } Finalmente o fecha chaves termina com a declaração da classe HelloInternet. ® vam 20 Introdução a applets Java Diferente de um aplicativo Java que é executado a partir de uma janela de comanddo, um applet é um programa Java que é executado no appletviewer ( um utilitário de testes para applets) ou um navegador de WWW. O appletviewer ou navegador executa um applet uando um documento Hipertxt Markup Language (HTML) contendo o applet é aberto no appletviwer (ou navegador). Recursos para applet na WWW: http:// java,.sun.com/applets/index.html Java.sun.com/jdc/ Developer.com/directories/pages/dir.java.html Gamalean.com Java Applet Rating Service –www.jars.com ® vam 21 Um Applet Simples 1 //Esse programa ilustra vários recursos Java importantes. 2 //Fig:Welcomeapplet.java 3 //Primeiro applet em Java 4 import javax.swing. Japplet; //importa a classe JApplet 5 import javax.awt.Graphics;. //importa a classe Graphics 6 public class WelcomeApllet extends Jappelt { 7 public void paint (Graphics g) 8 { 9 g.drawString (“Welcome To Java Programming!”,25,25); 10 } ® vam 22 Analizando o programa ® vam As linhas 3 e 4 são instrução de import que dizem ao compliladdor onde encontrar as classes exigidas para compilar esse applet java A clase JApplet ésta localidada no pacote javax.swing A classe Graphics no pacote java.awt A classe Graphics possibilita ao programa desenhar imagens gráficas ( como linhas retângulos, ovais, strings de caracteres) em aplicativo applet Java. Todos os pacotes na API (Applications Progranning Interfaces) são armazenados no diretório java ou javax, que contém muitos subdiretórios incluindo o awt e swing. Assim como os aplicativos, cada applet Java é composto de pelo menos uma definição de classe. O java utiliza Herança para criar novas classes a partir de definições das classes já existentes. 23 Analisando o Programa Linha 6 public class WelcomeApplet extends JApplet Definição da classe WelcomeApplet. extends seguida de nome de classe indica a classe da qual a nova classe herda fragmentos existentes. Nesse relacionamento de herança a, JApplet é chamada de superclasse ou classe básica e WelcomeApplet é chamada de subclasse ou classe derivada. Estender a classe JApllet é utilizar a definição que uma pessoa o que significa ser um apllet. O appletviewer eos navegadores WWW que suportam applets necessitam de atributos e comportamentos métodos) do applet. A classe JApplet fornece todas essas capacidaddes (aproximadamente 200). Usando extends para herdar JApplet Todos os métodos de Japplets agora fazem parte de WelcomeApplet. ® vam 24 Analisando o Programa ® vam WelcomeApplet é utilizada para criar um objeto que implementem os atributos e métodos do applet. O comportamento padrão do método paint na classe JApplet, é não fazer nada. A classe WelcomeApplet anula (substitui ou redefine) esse comportamento fazendo paint desenhar a mensagem na tela. O método paint desenha a mensagem na tela. O appletviewer ou navegador em que o applet executa é responsável pela a criação de um objeto da classe WelcomeApplet. A classe public em um arquivo é utilizada como parte do nome do arquivo WelcomeApplet.java é nome do arquivo. 25 Analisando o Programa ® vam A linha 7 - public void paint(Graphics g ), inicia a definição do método paint do applet O init, start e paint são os métodos que são chamadaos a a partir do appletviewer ou pelo navegador quando o applet está executando. Esses métodos são herdados da classe JApplet, fornecem a um programdor de applet uma seqüência inicial garantida de chamadas de método quando cada applet começa executar. Estes métodos são definidos de modo a fornecer ao appletviewer ou navegador uma uma seqüência inicial consistente. As linha 7 a 10 são a definição da função paint. A tarefa do método paint é desenhar imagens gráficas. O conjunto de parênteses depois do paint define a lista de parâmetros do método, o obeto Graphics (chamado g ) para realizar sua tarefa. 26 Analisando o Programa ® vam Public é requerida a fim de que o navegador possa chamar o método paint g.drawString (“Welcome To Java Programming!”,25,25) exibe os caracteres entre aspas na tela , utilizando o método drawString da classse Graphics . O método é chamado utilizando o objeto g da classe Graphics e a lista de argumentos de drawString. O primeiro argumento é o String “ ”, os dois últimos 25,25 são as coordenadas (ou posições) em que o canto inferior do string será desenhado. As coordenadas são medidas a partir do canto superior esquerdo do applet em pixels (picture element) um computador tem 640pixel de largura por 480 de altura ou 307,2000 pixels exibíveis. 27 Analisando o Programa ® vam Depois que a classe WelcomeApplet é definida e salva num arquivo WelcomeApplet.java, a classe deverá se complida javac WelcomeApplet.java, se não houver erro de sintaxe os bytecdes são armazenados no arquivo WelcomeApplet.calss. Devemos agora criar um arquivo HTML para carregar o applet no appletviewer (ou em um navegador) 1 <html> 2 < applet code= “ WelcomeApplet. class” width=300 height = 30> 3 </applet> 4 </html> Todos os tags de HTML começam com < e terminam com >. As linhas 1 e 4 indicam o início e o fim dos tags. 28 Analisando o Programa ® vam As linhas 2 e 3 são tags especiais para o applets Java . Elas instruem o appletviewer ou navegador a a carregar o applet. Normalmente o applet e seu arquivo html são armazenados no mesmo diretório. Na linha 2 o primeiro componente do tag <applet> (code = “WelcomeApplet.class) indicam a classe que contém o applet, a larguara e altura do applet em pixels. Na linha 3 / termina o applet e na linha 4 especifica o final do tag HTML. O appletviewer é um lugar ideal para testar a execução de um applet . Pode-se adicionar os tags <applet> e </applet> a um arquivo HTML que será visualizado pelas pessoas que navegam na Internet O appletviewer é invocado para o applet a partir da janela de comando do seu computador : Appletviewer WelcomeApplet.html que deve ser digitado a partir do diretório em que o arquivo HTML e .class do applet estão localizados 29