Você está na página 1de 43

Java

Universidade Federal do Paran Centro de Computao Eletrnica Diviso de Microinformtica

B?sico
Peter Frank Perroni
()

Mar?o - 1998

INDICE REMISSIVO

1 INTRODUO...............................................................................................................................4 1.1 A HISTRIA DA LINGUAGEM JAVA........................................................................................4 1.2 VANTAGENS DA LINGUAGEM JAVA......................................................................................5 1.3 CONFIGURAO.......................................................................................................................7 1.3.1 Varivel de ambiente CLASSPATH.......................................................................................8 2 ORIENTAO A OBJETOS..........................................................................................................9 2.1 CLASSE......................................................................................................................................9 2.2 OBJETO......................................................................................................................................9 2.3 IDENTIDADE.............................................................................................................................10 2.4 ENCAPSULAMENTO...............................................................................................................10 2.5 HERANA................................................................................................................................11 2.6 POLIMORFISMO......................................................................................................................11 3 A LINGUAGEM JAVA.................................................................................................................13 3.1 PACOTES.................................................................................................................................13 3.2 TIPOS DE DADOS....................................................................................................................13 3.3 OPERADORES.........................................................................................................................15 3.3.1 Operador new.......................................................................................................................15 3.3.2 Operador this........................................................................................................................15 3.3.3 Operador instanceof............................................................................................................16 3.4 TIPOS DE MODIFICADORES..................................................................................................16 3.4.1 Modificadores de atributos e mtodos...............................................................................17 3.4.1.1 Modificador static..............................................................................................................18 3.4.2 Modificadores de classes....................................................................................................21 3.4.2.1 Modificador abstract.........................................................................................................21 3.5 ACESSO A DADOS POR REFERNCIA.................................................................................22 3.6 COLETOR DE LIXO (GARBAGE COLETOR)..........................................................................24 3.7 SOBRECARGA DE MTODOS................................................................................................25

3.8 HERANA................................................................................................................................26 3.9 INTERFACE (ou HERANA MLTIPLA)................................................................................27 3.10 MULTITHREAD.......................................................................................................................29 3.11 TRATAMENTO DE EXCEES.............................................................................................31 4 APPLETS.....................................................................................................................................33 4.1 O QUE SO APPLETS.............................................................................................................33 4.2 COMO IMPLEMENTAR UMA APPLET....................................................................................33 4.3 O MTODO ACTION................................................................................................................36 4.4 APPLETS EM PGINAS HTML...............................................................................................36 5 APLICATIVOS COM JAVA.........................................................................................................39 5.1 CRIANDO APLICATIVOS COM JAVA.....................................................................................39 6 EXERCCIO..................................................................................................................................42 6.1 DIAGRAMA DE BLOCOS DO EXERCCIO.............................................................................42 6.2 QUESTES...............................................................................................................................48

1 INTRODUO

1.1 A HISTRIA DA LINGUAGEM JAVA

Em 1991, um pequeno grupo de funcionrios da Sun mudou-se para a San Hill Road, uma empresa filial. O grupo estava iniciando um projeto chamado Projeto Green, que consistia na criao de tecnologias modernas de software para empresas eletrnicas de consumo. Logo o grupo percebeu que no poderia ficar preso plataformas, pois os clientes no estavam interessados no tipo de processador que estavam utilizando, e fazer uma verso do projeto para cada tipo de sistema seria suicdio. Desenvolveram ento o sistema operacional GreenOS,

com a linguagem de programao Oak. Em 1993 surgiu uma oportunidade para o grupo Green, agora incorporado como FirstPerson: a Time-Warner, uma empresa que estava solicitando propostas de sistemas operacionais de decodificadores e tecnologias de video-on-demand1. Isso foi na mesma poca em que o NCSA lanou o MOSAIC 1.0, o primeiro navegador grfico para Web. A FirstPerson apostou nos testes de TV da Time-Warner, mas esta empresa preferiu optar pela tecnologia oferecida pela Silicon Graphics. Depois de mais um fracasso de acordo com a 3DO a FirstPerson dissolveu-se, e metade do pessoal foi trabalhar para a Sun Interactive com servidores digitais de vdeo. Entretanto, a equipe restante continuou os trabalhos

do projeto na Sun. Como a equipe de desenvolvimento tomava muito caf enquanto estava trabalhando, foram ingeridas centenas de chcaras de caf2 at que o projeto estivesse pronto. Finalmente em maio de 1995 a Sun anunciou um ambiente denominado Java, homenagem s chcaras de caf, que obteve sucesso graas a incorporao deste ambiente a browsers populares como o Netscape Navigator e padres tridimensionais como o VRML (Virtual Reality Modeling Language - Linguagem de Modelagem para Realidade Virtual). A Sun considera o sucesso do Java na Internet como sendo o primeiro passo para utiliz-lo em decodificadores da televiso interativa, em dispositivos portteis e outros produtos eletrnicos de consumo - exatamente como o Java tinha comeado em 1991. Sua natureza porttil e o projeto robusto permitem o desenvolvimento para mltiplas plataformas, em ambientes to exigentes como os da eletrnica de consumo.

1.2 VANTAGENS DA LINGUAGEM JAVA

Portabilidade: por ser uma linguagem interpretada, o Java pode ser executado em qualquer plataforma ou equipamento que possua um interpretador Java, e que tenha sido especialmente compilado para o sistema a ser utilizado. Robustez: os recursos da linguagem e do ambiente para o tempo de

execuo garantem que o cdigo no derrube o sistema de algum que tropece em uma home page contendo uma animao.

Segurana: alm de proteger o sistema do cliente contra possveis ataques

. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.

no-intencionais,

ambiente

tambm

deve

proteger

contra

aes

premeditadas. Muito tempo e esforo dos desenvolvedores de Java est sendo aplicado para que a linguagem se desenvolva nesse sentido. Orientao a Objetos: Java uma linguagem totalmente orientada a objetos, o que permite a herana e a reutilizao de cdigos de forma dinmica e esttica. Dinamismo: por ter um projeto orientado a objetos, o dinamismo faz parte da natureza do Java, o que permite a extensibilidade durante a execuo. Alto Desempenho: a linguagem Java suporta vrios recursos de alto desempenho, como multithreading, compilao just-in-time e utilizao de cdigo nativo. O byte-code do Java possui um desempenho aproximadamente 20 vezes inferior que o de um cdigo nativo do processador (ou linguagem de mquina), mas que em comparao com linguagens Script, como o HTML, o JavaScript ou o VBScript, ou at mesmo o prprio byte-code do VB (Visual Basic), possui uma performance muitas vezes superior. Esta performance, pela quantidade de esforos aplicados sobre a sua otimizao pelos

desenvolvedores de Java, est cada vez mais sendo aumentada, podendo um dia comparar-se com uma linguagem compilada para o processador em especfico (linguagem nativa). Inclusive j foram criados processadores para suportar diretamente o byte-code da linguagem Java. Facilidade: a linguagem derivada da linguagem C e C++, sendo assim familiar. Alm disso, o ambiente retira do programador a responsabilidade de gerenciar a memria e os ponteiros.

. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

Alm dessas vantagens, a linguagem Java est agora incorporando suporte a operaes em Banco de Dados. O JDBC, que uma biblioteca de classes para acesso a banco de dados, permite uma conexo remota a servidores SQL que possuam driver OBDC ou compatvel. Transaes no estilo de Compras, Vendas, Cadastramentos, Alterao de dados pessoais controlada por senha via Internet, so exemplos do que o JDBC permite que seja realizado.

1.3 CONFIGURAO

O Java uma linguagem de programao feita para ser utilizada em um ambiente de 32 bits grfico (portanto, no funciona no Windows 3.1/3.11 ou no MS-DOS puro). Possui um compilador muito pesado e torna-se lento demais quando aplicado a mquinas de processamento mais simples, como um 486 (que possui um processamento escalar de uma via ou uma instruo sendo executada por ciclo de clock). O ideal utilizar, tanto para a compilao quanto para a execuo de programas Java, uma mquina Pentium ou superior (possui um processamento superescalar de duas vias - paralelismo, duas instrues sendo executadas no mesmo ciclo de clock). Isto no significa que um programa feito em Java no funcione numa mquina 486. Um outro contratempo do Java com relao a suas verses existentes. Cada browser que tem suporte a Java possui, no meio de seus arquivos, um (ou alguns) arquivos especiais, que so arquivos compactados que contm as classes padres do Java. O problema que normalmente, pela lei de
. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

Murphi, a verso de Java que voc utiliza para programar no a mesma verso de Java que o browser usurio ir utilizar para visualizar o seu programa. Ou seja, voc pode compilar os seus programas em uma verso do Java, usando classes e propriedades implementadas na verso que voc est utilizando, ao mesmo tempo em que os arquivos de classes do browser do usurio podem ter sido implementados em uma verso anterior, tornando improvvel a interpretao dos cdigos do seu programa pelo browser do usurio.

1.3.1 Varivel de ambiente CLASSPATH

Durante a configurao do Java, deve ser criada uma varivel de ambiente com o nome de CLASSPATH, que deve conter o seguinte contedo: <drive>:\<diretrio do Java>\lib\classes.zip; Isto faz com que o Java, quando estiver precisando de alguma classe que esteja dentro de algum pacote, procure a classe desejada dentro deste arquivo (classes.zip). Se a encontrar, o Java descompacta a classe e a utiliza. Este mtodo de compactar os pacotes com as suas classes correspondentes faz com que se economize espao em disco. Exerccio: Crie a varivel CLASSPATH e arranje corretamente o seu contedo.

. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

2 ORIENTAO A OBJETOS

Este captulo destina-se queles que desejam ter alguma noo sobre o que a orientao a objetos, descrevendo algumas de suas principais caractersticas.

2.1 CLASSE

Classe a descrio de um grupo de objetos que possuam atributos e comportamentos iguais, e que relacione-se da mesma forma com os outros objetos. Para uma rpida compreenso, a estrutura de uma classe pode ser comparada com uma estrutura em C (struct), sendo que, entre outras caractersticas, uma classe pode possuir mtodos (funes) e implementaes de segurana (nveis de acesso). Os atributos das classes seriam as variveis da estrutura.

2.2 OBJETO

Um objeto no nada mais do que uma instncia de uma classe, ou seja, um exemplar da classe instanciada representado na memria. Fazendo uma comparao com a estrutura da linguagem C (struct),
. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

A t r ib u t o s p r iv a d o s M to d o s p b lic o s

B o ta o Cor x ,y M u d a C o r(c o r) R e to rn a C o r() M u d a C o o rd e n a d a s (x ,y )

10

podemos dizer que a classe seria a estrutura e o objeto seria a varivel da estrutura.

2.3 IDENTIDADE

Embora

os

objetos

da

mesma

classe

tenham

as

mesmas

caractersticas e funes, e talvez at os mesmos valores de atributos, cada nova instncia da classe representada separadamente na memria.

2.4 ENCAPSULAMENTO

Tcnica que permite ocultar os atributos da classe, sendo que somente os mtodos da classe prpria podem ler ou alterar estes atributos. Isto faz com que no haja necessidade de saber como a classe foi implementada internamente, deixando que os mtodos internos da classe se preocupem com isto. Exemplo:

. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

B o ta o R e d o n d o R a io D e s e n h a () S o b re p o s i o um B o ta o C or x ,y M u d a C o r(c o r)

11

2.5 HERANA

R e to n a C o r() A herana r permite que as classes compartilhem os seus atributos e M u d a C o o rd e n a d a s (x ,y ) mtodos com outras eclasses, utilizando para isto um relacionamento D e s n h a () esquematizado de forma hierrquica. Na herana h dois tipos de classes que devem ser levadas em considerao: superclasse: a classe da qual uma outra classe (subclasse) herda

as suas caractersticas. subclasse: a classe que herdou as caractersticas de uma outra classe (superclasse). Exemplo: java.lang.Object | +----java.awt.Component | +----java.awt.Container | +----java.awt.Window | +----java.awt.Dialog | +----java.awt.FileDialog

2.6 POLIMORFISMO

Uma subclasse pode implementar novamente um mtodo ou atributo j implementado por uma classe da qual herdeira.

. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

12

3 A LINGUAGEM JAVA

3.1 PACOTES

O esquema de subdivises de classes do Java muito parecido com o esquema de subdiretrios de muitos sistemas operacionais, tais como o MS-DOS, Windows ou Unix. Cada subdiretrio fsico no disco corresponde a um pacote da linguagem. Assim, o pacote contendo a seguinte hierarquia: java | +-----awt | +-------image seria gravado em disco da seguinte forma: java\awt\image\ Os pacotes esto organizados de uma maneira hierrquica, de forma que cada subpacote tenha uma funo acertada dentro da linguagem e um conjunto de classes que realizam um trabalho especfico.

3.2 TIPOS DE DADOS

O Java, como em C e C++, possui uma grande variedade de tipos de dados. A seguir esto os tipos primitivos de dados suportados pelo Java:
. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

13

int: formado por 32 bits, suporta valores entre -2.147.483.648 e 2.147.483.648. long: formado por 64 bits, usado quando voc realmente precisa guardar valores muito altos. float: formado por 32 bits, usado para guardar valores em ponto flutuante que possuam at 7 casas decimais. double: formado por 64 bits, utilizado quando se deseja armazenar valores em ponto flutuante com at 15 casas decimais. Um valor em ponto flutuante no Java , por default, um valor double. boolean: possui apenas os valores lgicos true (verdadeiro) e false (falso). char: formado por 16 bits, armazena caracteres Unicode (alm da tabela ASCII, possibilita o uso de caracteres que possam ser utilizados em qualquer idioma do mundo). Alguns caracteres no so diretamente suportados pelo tipo, pois so caracteres de controle. Tais caracteres so: Descrio Continuao Nova linha Tabulao horizontal Retrocesso (backspace) Retorno de carro (carriage return) Avano de pgina(form feed) Barra invertida Aspas simples Aspas duplas Padro de bits para octal Padro de bits para hexadecimal Caracter Unicode 3.3 OPERADORES
. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

Designao Padro <newline> NL (LF) HT BS CR FF \ 0ddd 0xdd 0xdddd

Seqncia \ \n \t \b \r \f \\ \ \ \ddd \xdd \udddd

14

Eis alguns operadores importantes da linguagem Java: new this instanceof

3.3.1 Operador new

O operador new utilizado sempre que necessrio criar uma nova instncia de uma classe (objeto). Este operador tem um funcionamento parecido como o malloc() da linguagem C, alocando espao em memria para a adequao do novo objeto.

3.3.2 Operador this

O operador this serve como uma referncia para o prprio objeto que o est utilizando. Ele utilizado, por exemplo, nos casos em que necessrio explicitar se uma varivel faz parte da classe ou dos parmetros do mtodo. Exemplo: public class Exemplo{ private int Valor; public void AlteraValor(int Valor){ // Para que o compilador saiba qual varivel deve ser alterada this.Valor = Valor; } }

. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

15

3.3.3 Operador instanceof

O operador instanceof serve apenas para identificar se um dado objeto uma instncia da classe especificada. Exemplo: Button botao = new Button(Boto); if (botao instanceof Object) { System.out.println(O objeto botao descende da classe Object!); }

3.4 TIPOS DE MODIFICADORES

Alm dos tipos de dados, na hora da declarao de um atributo (ou varivel) deve ser declarado tambm o tipo de modificador que ser utilizado para o atributo. Um modificador usado para a identificao dos nveis de acesso de um atributo. No s s variveis, mas tambm aos mtodos (ou funes) e s classes, o Java exige que seja declarado qual modificador deve ser aplicado.

. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

16

3.4.1 Modificadores de atributos e mtodos

Os atributos e mtodos podem ser declarados com nveis de acesso do tipo: privado, protegido, pblico, esttico e default. Veja abaixo a tabela: private O mtodo ou atributo pode ser

acessado somente por mtodos que esto dentro da prpria classe na qual protected public static foi declarada Pode ser acessado pela prpria classe e pelas classes que derivarem desta Pode ser acessado de qualquer classe Para os mtodos ou atributos declarados como static, haver apenas um desses para todos os objetos <DEFAULT>(em branco) criados da classe Pode ser acessado pela prpria classe e por classes criadas dentro do pacote do qual esta classe pertence Estes so os tipos de modificadores mais utilizados. Os outros so: final synchronized native abstract No pode ser sobrecarregado O mtodo no reentrante O mtodo foi feito em outra linguagem (uma linguagem nativa da mquina) O mtodo no possui um corpo (no foi codificado). Quando um mtodo

declarado como abstrato, a sua classe deve, obrigatoriamente, ser tambm declarada como abstrata
. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

17

3.4.1.1 Modificador static

O mais complicado dos modificadores mais utilizados o static. Quando um mtodo declarado como static, diz-se que ele um mtodo da classe. Quando um mtodo declarado com outro modificador, diz-se que ele um mtodo do objeto. Quando um objeto declarado e inicializado, alguns passos so executados internamente: 1. criado um ponteiro para um objeto do tipo da classe utilizada para a declarao. O ponteiro a varivel declarada; 2. alocado um espao na memria para um objeto desta classe; 3. O ponteiro criado apontado para o objeto alocado na memria.

Para os atributos, reservado no objeto um espao para os dados de cada atributo. Para os mtodos, h somente uma rea com os cdigos de cada mtodo, que compartilhada com todos os objetos da classe. O que acontece com os atributos estticos que quando um atributo declarado como static, no reservado no objeto um espao para os dados deste atributo. Da surgem algumas conseqncias para o programador: um mtodo esttico s pode acessar atributos estticos, pois ele no tem conhecimento dos dados que esto no objeto criado; um mtodo esttico s pode acessar os mtodos que so estticos, pois esses so os mtodos da classe, e mtodos de classe no enxergam
. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

18

mtodos de objeto; um mtodo no esttico pode acessar um mtodo esttico; um atributo de classe (esttico) compartilhado com todos os objetos criados desta classe, assim como um mtodo de classe; quando o valor de um atributo de classe alterado, todos os objetos desta classe percebem esta alterao para o novo valor. Exemplo: class Dinheiro{ private double Reais; private static int nDecimais = 2; public Dinheiro(double Reais) { this.Reais = Reais; } public double Valor() { return (Reais); } public static void MudaDecimais(int CasasDec) { nDecimais = CasasDec; }

. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

19

public static String paraString(double Valor, String Moeda, double Fator) { Valor = Valor*Fator; String inteiro = Integer.toString((int)Valor); int potencia = (int)Math.pow(10,nDecimais); String decimal = Integer.toString((int)(((double)Valor-(int)Valor) * potencia)); return (Moeda+inteiro+","+decimal); } } Esta classe seria utilizada com as seguintes chamadas: Dinheiro dinheiro = new Dinheiro(500.30); // Imprime na sada padro do sistema System.out.println(Dinheiro.paraString(dinheiro.Valor(),"R$ ",1)); System.out.println(Dinheiro.paraString(dinheiro.Valor(),"URV ",.96)); Dinheiro.MudaDecimais(4); System.out.println(Dinheiro.paraString(dinheiro.Valor(),"U$ ",1.112)); O atributo Reais da classe Dinheiro, por mais que esteja na mesma classe, est oculto para o mtodo paraString(). Este mtodo s enxerga o atributo nDecimais, que tambm esttico.

Exerccio: Faa uma classe que armazene todos os pontos de um quadrado em 2D, e um mtodo esttico que receba um ponto e um comprimento e retorne um quadrado. Para isto crie a classe ponto e utilize vetores. Exemplos de vetores: int x[] = {1,2,3}; Int y[3];

. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

20

3.4.2 Modificadores de classes

As classes podem ser declaradas com nveis de acesso do tipo privado, publico, abstrato e final. private public abstract final S pode ser acessada dentro do arquivo fonte no qual a classe foi codificada Todos a acessam. S pode haver uma classe pblica por arquivo fonte A classe no pode ser instanciada diretamente. A classe no pode ser utilizada como superclasse (no pode possuir classes derivadas) 3.4.2.1 Modificador abstract

Geralmente, uma classe declarada como abstrata quando ela possui um mtodo abstrato (que no tem corpo). abstract class Abstrata{ public abstract void MetodoAbstrato(); } Um mtodo declarado como abstrato quando deseja-se obrigar o programador, que ir utilizar a classe, a escrever o cdigo deste mtodo. Enquanto no for escrito o cdigo deste mtodo, no ser permitida a instanciao desta classe. Para isto, cria-se uma classe derivada da classe abstrata, e inclui-se o cdigo do mtodo que foi declarado como abstrato.

. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

21

public class NaoAbstrata extends Abstrata{ public void MetodoAbstrato() { //cdigo do mtodo } } Uma classe pode tambm ser declarada como abstrata quando no se quer que a classe seja instanciada diretamente. Deve ser criada uma outra classe derivada desta, e somente esta ltima classe poder ser instanciada. abstract class Automovel{ public void Acelerar(int Acrescimo) { //cdigo } public void Freiar(int Reducao) { //cdigo} } public class BMW extends Automovel{ private long Preco$; }

3.5 ACESSO A DADOS POR REFERNCIA

Uma das grandes vantagens de implementao do Java em relao ao C/C++ a no utilizao de ponteiros. Um dos grandes martrios dos programadores menos experientes em C justamente a utilizao de ponteiros, que costuma deixar rastros indesejveis quando mal utilizado. O Java acaba com este problema ao eliminar o uso de ponteiros e adotar o uso de referncias. Acaba mesmo ? ! ? Todos os dados que so manipulados em Java fazem parte de alguma classe, com exceo dos dados primitivos da linguagem (int, long, float, double,
. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

22

boolean, char). Toda instncia de classe (ou objeto) criada manipulada por algum que referencie a ela. As variveis que so declaradas no programa so as responsveis pelas referncias s instncias de classes. As referncias so feitas por meio do endereo da instncia. Este endereo atribudo a alguma varivel declarada, que fica apontando para a instncia; ou seja, resumindo, a varivel declarada serve como um...ponteiro? Exatamente. Isto significa, ento, que toda varivel declarada para referenciar um objeto um ponteiro. Parece confuso? Se isto no ficou claro, segue em baixo uma explicao mais detalhada: No cdigo: String str = new String(Fala, Brasil!); podemos distinguir trs etapas. Na primeira etapa: String str foi declarada na memria uma varivel para referenciar um instncia da classe String. Na Segunda etapa: new String(Fala, Brasil!) foi criada na memria uma instncia da classe String com o parmetro de inicializao Fala, Brasil!. E na terceira etapa: String str = new String(Fala, Brasil!); foi atribudo o endereo do objeto criado varivel str. Se logo em seguida houvesse o cdigo: String prt = str; poderamos distinguir mais trs etapas. Na primeira etapa: String ptr Seria criada a varivel ou ponteiro. Na Segunda etapa:
. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

23

str seria capturado o contedo da varivel str, ou seja, endereo da instncia da classe String criada anteriormente. E na terceira etapa: String ptr = str; seria atribudo varivel ptr o endereo capturado. Resumindo, nestas duas linhas: String str = new String(Fala, Brasil!); String ptr = str; foram declaradas duas variveis que apontam para o mesmo objeto criado na memria.

3.6 COLETOR DE LIXO (GARBAGE COLETOR)

Outra implementao muito til do Java o seu coletor de lixo. O coletor tem um conceito de funcionamento bem simples. Se no houver qualquer referncia a um objeto que tenha sido criado na memria, o coletor de lixo destri o objeto e libera a memria ocupada por ele. O coletor de lixo executado de tempos em tempos. Quando a JVM (Java Virtual Machine Mquina Virtual Java) percebe que o sistema diminuiu a utilizao do processador, ele libera o coletor de lixo, que vasculha a memria em busca de algum objeto criado e no referenciado. Quando uma grande quantidade de objetos ou objetos muito grandes no so mais necessrios, e voc no quer esperar at que o coletor de lixo seja executado e libere toda esta memria, voc pode cham-lo explicitamente no
. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

24

programa, como no exemplo: Runtime rt = java.lang.Runtime.getRuntime(); rt.gc(); Isto reduz a velocidade do programa por alguns instantes, mas evita a falta de memria.

3.7 SOBRECARGA DE MTODOS

Este tipo de sobrecarga normalmente utilizada quando precisa-se fazer vrios mtodos com praticamente a mesma funo, mas recebendo parmetros diferentes para tipos de tratamentos diferentes. Exemplo: public class Pessoa{ private String Nome; private boolean Vivo; public Pessoa() { Vivo = true; } public Pessoa(String Nome) { Vivo = true; This.Nome = Nome; } }

. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

25

3.8 HERANA

A herana em Java muito simples de ser implementada. Cada classe pode descender de uma outra classe utilizando-se apenas da palavra reservada extends no momento da declarao. Uma classe que no descende de ningum implementada da seguinte forma: public class SemDescendencia{ // declaraes } Esta classe chamada de classe pai ou superclasse quando alguma classe deriva-se dela da seguinte forma: public class ComDescendencia extends SemDescendencia{ // declaraes } Desta forma, a classe ComDescendencia torna-se uma classe filha da classe SemDescendencia, herdando todas as caractersticas desta. A classe Object a raiz da rvore hierrquica do Java. Todas as classes criadas no Java descendem dela, possuindo todos os mtodos que ela possui. O programa a seguir prova isto: public class Principal{ public static void main(String args[]) { new SemDescendencia2().imprime(); } } class SemDescendencia2{ public void imprime() { System.out.println(getClass()); } }
. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

26

O mtodo getClass() pertence classe Object, mas a classe SemDescendencia2 no descende de Object diretamente. Esta descendncia est implcita. A herana em Java implementada como uma herana simples, ou seja, cada classe pode descender de apenas uma nica classe pai de cada vez. Quando se deseja implementar a herana mltipla, deve-se utilizar o que no Java chamado de interface.

. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

27

Exerccio: Construa e codifique a herana das classes Moto, Bicicleta e Triciclo, tendo como base a classe Veculo. Considere as propriedades Motor e Rodas.

3.9 INTERFACE (ou HERANA MLTIPLA)

Quando necessrio que uma classe descenda de vrias classes classes pais de uma s vez, devemos implementar aquilo que no Java chamamos de interface. A interface tem a seguinte sintaxe:
public interface NomeDaInterface implements interface1, interface2, ...interface-n

Uma interface consiste em uma classe contendo somente mtodos abstratos e atributos finais e estticos. Ento qual a utilidade da interface, se nada nela implementado e, consequentemente, nada ser herdado? Imagine a seguinte situao: voc tem uma classe de professores e uma de alunos, e deseja fazer um mtodo que trate dos professores e alunos como seres humanos, com direitos e deveres iguais, ou seja, com tratamentos em comum. Voc poderia fazer a seguinte codificao: public class Pessoa{...} public class Aluno extends Pessoa{...} public class Professor extends Pessoa{...} e no mtodo prototipado desta forma: public void TrataPessoa(Pessoa p); uma chamada seria como esta: Aluno aluno = new Aluno(); Professor professor = new Professor();
. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

28

TrataPessoa(aluno); TrataPessoa(professor); Mas imagine que as classes Professor e Aluno so threads, ou seja, estas classes j descenderam de outra classe. Como soluo imediata, este problema poderia ser resolvido da seguinte forma: fazer separadamente mtodos que tratem dos direitos e deveres dos professores e dos alunos. public class Aluno extends Thread {...} public class Professor extends Thread {...} e em mtodos prototipados desta forma: public void TrataPessoa(Aluno a); public void TrataPessoa(Professor p); as chamadas seriam como estas: Aluno aluno = new Aluno(); Professor professor = new Professor(); TrataPessoa(aluno); TrataPessoa(professor); Desta maneira, todos os mtodos que precisarem receber Pessoa devero ser duplicados. Para evitar este trabalho todo, a interface resolve este problema da seguinte forma: public interface Pessoa{...//declaraes abstratas de mtodos e atributos de Pessoa} public class Aluno extends Thread implements Pessoa{...} public class Professor extends Thread implements Pessoa{...} e em mtodos prototipados desta forma: public void TrataPessoa(Pessoa p); public void TrataThread(Thread t); as chamadas seriam como estas: Aluno aluno = new Aluno(); Professor professor = new Professor(); TrataPessoa(aluno); TrataPessoa(professor); // Professor e Aluno so ambos descendentes de Thread e Pessoa
. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

29

TrataThread(aluno); TrataThread(professor); Outra vantagem que a interface permite que o mtodo que vai receber como parmetro uma instncia da interface (no exemplo,

TrataPessoal(Pessoal)) trate somente com os mtodos e atributos que foram definidos na prpria interface, deixando todos as demais implementaes do objeto invisveis para o mtodo.

3.10 MULTITHREAD

O Java uma linguagem de 32 bits baseada em sistemas operacionais multitarefas. Por ser uma linguagem multithread, ou multitarefa, cada programa Java pode gerar vrias tarefas, que sero executadas de forma totalmente independentes umas das outras. Antes da classe principal ser carregada, a JVM cria uma thread simples que chama o mtodo main() da classe a ser carregada. A JVM continua ativa enquanto h threads sendo processadas, ou at que o mtodo exit() da classe Runtime seja chamado explicitamente. Uma thread pode ser implementada da seguinte forma: public class MINHASTHREADS implements runnable{ // declaraes public void run() { // cdigo da thread } }
. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

30

Quando o cdigo abaixo colocado em alguma outra classe: MINHASTHREADS thread1 = new MINHASTHREADS(); MINHASTHREADS thread2 = new MINHASTHREADS (); duas instncias da classe MINHASTHREADS so criadas. O cdigo a seguir cria duas novas instncias da classe Thread e chama o mtodo start() delas. Quando o mtodo start() chamado, a JVM procura e chama o mtodo run() de Thread1 e Thread2. new Thread(thread1).start(); new Thread(thread2).start(); Uma Segunda forma de se implementar uma thread pode ser feita da seguinte forma: public class MINHASTHREADS extends Thread{ // declaraes public void run() { // cdigo da thread } } O cdigo abaixo cria duas instncias da classe MINHASTHREADS e chama, logo em seguida, o mtodo start(). Esta chamada pode ser feita diretamente, pois a classe MINHASTHREADS descende da classe Thread, o que torna o cdigo mais simples que o primeiro. MINHASTHREADS thread1 = new MINHASTHREADS (); MINHASTHREADS thread2 = new MINHASTHREADS (); Thread1.start(); Thread1.start(); Quando necessrio que duas ou mais threads entrem em sincronismo, necessrio que haja uma pausa na thread que est sendo executada para que ela no tome todo o tempo do processador, dando chance
. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

31

para que outra thread seja processada. Isto feito incluindo se a seguinte chamada de mtodo: yield(); Este mtodo retira temporariamente a thread da linha de execuo para que outras threads sejam executadas. Exerccio: Crie uma thread que imprima as horas a cada vez que os segundos mudarem, e outra thread que imprima quanto tempo falta para o dia seguinte (em segundos). A impresso deve ser feita na sada padro do sistema.

3.11 TRATAMENTO DE EXCEES

A construo de um programa precisa ser feita de tal forma que ele sempre possa lidar com o inesperado. Nas linguagens de programao mais antigas, era necessrio que voc fizesse o tratamento das situaes incorretas com enormes e complicados blocos if-then-else. A linguagem Java implementa o tratamento de excees de uma maneira mais simplificada, atravs de blocos catch. Os blocos catch devem ser colocados em todos os cdigos nos quais os resultados de certas operaes possam ser duvidosos. A sintaxe para um bloco catch a seguinte:
try {*/ Operao duvidosa */} catch (Exceo1) {/* Tratamento da exceo 1*/} ... catch (Exceo-n) {/* Tratamento da exceo n*/}

. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

32

Exemplo: try{ String string = new String(0xaa); Integer NovoInteiro = new Integer(string); }catch(NumberFormatException e){ System.out.println(No foi possvel converter +e.getMessage()+ em Integer); } Se no for colocado um tratamento de exceo para este cdigo no mtodo onde ele est, a execuo do programa retorna na pilha por todos os mtodos at que se encontre um bloco catch em algum mtodo que trate a exceo lanada. Se no for encontrado nenhum bloco, o programa retorna por toda a pilha e finaliza a sua execuo. Se for encontrado, o bloco catch executado e o programa retoma a sua execuo normal.

. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

33

4 APPLETS

4.1 O QUE SO APPLETS

Applets so programas em Java feitos especialmente para rodar em browsers na Internet. Uma applet possui vrios recursos grficos para a apresentao de dados na tela, sendo que os recursos mais comuns de apresentao de dados, as sadas padres do Java, no funcionam no browser, pois so recursos no grficos. Uma applet possui vrias implementaes de segurana que um aplicativo Java no tem. Enquanto que em um aplicativo normal em Java voc pode, por exemplo, ler, gravar, alterar arquivos e configuraes do sistema, a linguagem Java impede que uma applet faa qualquer tipo de acesso a recursos fsicos do sistema que est sendo utilizado. Mas h excees: isto depende da verso do Java que est sendo utilizada, e verses mais antigas possuem menos recursos de proteo ao sistema.

4.2 COMO IMPLEMENTAR UMA APPLET

A applet bsica tem uma implementao muito simples. Veja o exemplo:

. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

34

import java.applet.*; import java.awt.*; public class Contador extends Applet{ int cont; public void init() { System.out.println("Isto aqui no vai aparecer no browser!"); cont = 1; } public void start() { repaint(); } public void stop() { cont++; } public void paint(Graphics g) { g.drawString(Isto apareceu no browser pela +cont+" vez",10,10); } } Podemos dividir este pequeno programa em algumas reas de interesse. Primeiramente, nas linhas: import java.applet.*; import java.awt.*; foi dito ao Java que considerasse, na hora de compilar, todas as classes que esto localizadas no pacote java.applet e no pacote java.awt. O cdigo: public class Contador extends Applet{ diz que a classe Contador uma classe pblica que descende (ou estende) da classe Applet. public void init() public void start() public void stop() public void paint(Graphics g)
. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

35

Os

mtodos

acima,

que

foram

implementados

no

programa,

sobrecarregam (ou sobrepem) os mtodos init(), start(), stop() e paint() da classe Applet. O browser, antes de carregar uma applet, carrega uma classe chamada appletviewer, que uma thread. A classe appletviewer recebe como parmetro a applet a ser carregada e chama, logo em seguida, os mtodos ditos anteriormente. Estes mtodos so chamados na seguinte ordem: init() chamado apenas uma vez, logo aps o carregamento da applet. start() chamado logo aps a chamada do mtodo init(), e toda vez que a applet torna-se visvel na tela stop() chamado toda vez que a applet torna-se invisvel. paint() chamado pelo Java toda vez que a applet precisa ser redesenhada. Pode ser chamado explicitamente atravs do mtodo repaint(). O mtodo paint() recebe como parmetro uma instncia da classe Graphics. A classe Graphics utilizada para sadas grficas no browser. Todos os mtodos desta instncia imprimem na rea de visualizao da applet. Tudo o que no for impresso grfica no sair na applet, mas ficar na rea de sada padro do sistema, como acontece com este cdigo: System.out.println("Isto aqui no vai aparecer no browser!"); Quando a applet inicializada, atribudo o valor 1 varivel cont. Toda vez que a applet fica invisvel na tela, a varivel cont incrementada, e toda vez que o a applet fica visvel, uma nova string impressa na tela. Exerccio: Crie uma applet que imprima Hello, world! Whos talking?.

. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

36

4.3 O MTODO ACTION

O mtodo action um mtodo especial da applet que utilizado pelo Java para avisar a applet que um evento ocorreu. Este mtodo recebe dois parmetros e retorna um boolean. public boolean action(Event evt, Object o) Cada tipo de evento tratado de uma forma diferente. Para tratamento de eventos especficos, necessrio recorrer manuais especficos. O valor de retorno deste mtodo importante, pois deve ser retornado false se ele no tratou o evento ocorrido. Se o mtodo action retornar true, o evento deve ter sido tratado.

4.4 APPLETS EM PGINAS HTML

Para podermos implementar uma applet com os seus recursos grficos, primeiro devemos aprender como utiliz-los. Os recursos grficos da applet esto organizados de forma hierrquica: java.lang.Object | +----java.awt.Component | +----java.awt.Container | +----java.awt.Panel | +----java.applet.Applet A classe Applet, por ser a classe que vai ser apresentada na tela,
. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

37

possui vrias caractersticas grficas de browser. A Applet um Panel. Por sua vez, a classe Panel possui as caractersticas da classe da qual descende, Container, com apenas algumas poucas alteraes. A classe Container uma classe de organizao de layout. Pode ser escolhido o tipo de layout a ser utilizado na montagem da tela (setLayout()). Objetos Component podem ser adicionados a sua estrutura de layout. A classe Component a classe da qual descende vrias outras classes de objetos de tela, tais como: Button, Label, TextArea, TextField, Canvas, etc. Ela uma das classes que contm o objeto Graphics, especfico para desenhos em tela. A classe Object a classe da qual todas as outras classes do Java descendem, tanto implicitamente quanto explicitamente. Exemplo de utilizao dos recursos grficos de uma Applet: import java.awt.*; import java.applet.*; public class MinhaApplet extends Applet{ Canvas canvas; Button botao; Label label; TextField tf; public void init() { canvas = new Canvas(); // Cria uma rea de desenho canvas.resize(100,100); // Dimensiona esta rea label = new Label("Nmero da cor: "); tf = new TextField("0",2); botao = new Button("Alterar cor"); // Altera o layout para o layout de borda setLayout(new BorderLayout(20,20)); // Adiciona os componentes em seus respectivos pontos cardeais add(canvas,BorderLayout.NORTH); add(label,BorderLayout.WEST); add(tf,BorderLayout.EAST);
. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

38

add(botao,BorderLayout.SOUTH); } public boolean action(Event evt, Object o) { // Sintaxe para obteno de eventos de boto if (evt.target instanceof Button) if (o == "Alterar cor"){ int c = Integer.decode(tf.getText()).intValue(); Color cor = new Color(c,c,c); canvas.setBackground(cor); canvas.repaint(); } return(true); } } Exerccio: Crie uma applet que imprima as horas do sistema e quantos segundos faltam para o dia seguinte. Para isto, utilize duas threads.

. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

39

5 APLICATIVOS COM JAVA

5.1 CRIANDO APLICATIVOS COM JAVA

Um aplicativo em Java no serve para ser executado sob um browser, pois browsers entendem apenas applets. A JVM precisa ser executada explicitamente para podermos carregar um aplicativo. Uma das grandes vantagens do aplicativo feito em Java sobre as applets que o JVM no impe limites sobre as aes do aplicativo, ficando o programador livre para utilizar todos os recursos da linguagem. Do contrrio, a vantagem das applets sobre os aplicativos que j elas vm com os recursos grficos embutidos, o que torna a utilizao deles relativamente simples, alm de poderem ser visualizadas em browsers pela Internet. Criar um aplicativo em Java simples. Uma da poucas diferenas prticas iniciais que um aplicativo Java tem de uma applet Java que os aplicativos devem implementar um mtodo chamado de main(). Este mtodo dever ser esttico, de tal forma que todos os objetos instanciados da classe principal contenha apenas um mtodo main(). Quando for necessrio que os mtodos a serem implementados estejam na mesma classe que o mtodo main(), deve ser feito algo como as seguintes linhas de cdigo:

. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

40

public class menu { int nOp; String sOp; public static void main(String args[]) { menu n1 = new menu ("Pesquisar",0); menu n2 = new menu ("Imprimir",1); n1.Saida(); n2.Saida(); } public menu(String sOp, int nOp) { System.out.print("Opo "+sOp+"|"); this.sOp = new String (sOp); this.nOp = nOp; } void Saida() { System.out.println("\nEsta instncia representa a opo "+nOp+" => "+sOp); } } A JVM chama o mtodo main() da classe menu. Como o mtodo main() esttico e s pode acessar mtodos que tambm sejam estticos, no possvel chamar diretamente o mtodo Saida(). Ento, pode ser criada uma instncia da classe menu de dentro de main(), que tambm da classe menu. Isto assegurar que todos os atributos e mtodos que no so estticos na classe menu sejam visveis dentro do mtodo main(). Os atributos nOp e sOp declarados no incio do programa no so atributos estticos, ou seja, cada nova instncia declarada da classe menu possui o seu prprio nOp e sOp. H outras maneiras de se fazer este programa, e uma maneira mais clara do do que a anterior a seguinte:

. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

41

public class menu{ public static void main(String args[]) { Opcao n1 = new Opcao ("Pesquisar",0); Opcao n2 = new Opcao ("Imprimir",1); n1.Saida(); n2.Saida(); } } class Opcao { int nOp; String sOp; public Opcao(String sOp, int nOp) { System.out.print("Opo "+sOp+"|"); this.sOp = new String (sOp); this.nOp = nOp; } void Saida() { System.out.println("\nEsta instncia representa a opo "+nOp+" => "+sOp); } } Exerccio: Faa um aplicativo que calcule e imprima na sada padro o volume de um cubo. Para isto, crie uma classe Ponto3D, Cubo e um mtodo esttico, como j visto no captulo sobre o Modificador STATIC.

. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

HQI EU RE A R PQOUSIA U I Q U E M M S
42

R i v e rR a i d 6 EXERCCIO C Ao pn pt rl oe l te

C o n tro l e C o n tro l e T h re a d 6.1 DIAGRAMA DE BLOCOS DO EXERCCIO P o s to s Tanques Caca Layout T h re a d Layout P o s to s Tanques P o s to s Caca A lv o T h re a d Caca T Pa on sq tuo es s A t i ra d o r A tAi r lav do o r T h re a d T i ro s Caca A tTi ri ar od so r A lv o A tira d o r A lv o T h re a d T iro s T h re a d CanvasJogo Canvas
. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2

Layout

CanvasJogo

A lv o

IM P L E IMM ENT TO ADUE T SOE EASCT ET SIC DD EISGCO D IG O - C O M P L E M E N T O MA PT LR EIB CO N T S D E C O M


43

R iv e rR a id R i v e rR a i d T iro s in it A d i c i o n a T i ro ru n g C o n t ro l e a c t i o n B o Pt ee r s ud ne t a In ic io u V e ri fi c a T i ro s I n v Na al i vd ea gT ai r o s o M o v e T i ro s C o n t ro l e Acao P a u s a C o n tro l e R e i n i c i a C o n t ro l e s t a rt V e ri fi c a ru n


6.2QUESTES

s to p P a u s a T i ro s A tiv o

d e s t ro y R e i n i c i a T i ro s P ausado R e in ic ia d o

Acao

t P a u s a C o nC t roo nl e r o l e

R e i n i c i a C o n tro l e

L a y o u tL a y o u t a tiv o pausado re i n ic ia d o 1 S E S T T IC A nveis de acesso corretos de maneira mais restringvel Coloque os S P R O P R IE D A D E ruu nn s ee nn hh aa A re a D e s e n h o r DD ee spossvel. Faag istod apara todasv vas classesv odoaaprograma RiverRaid.too LL ee g ee nn d a MM o o e e NN oo v o TT nn qq uu ee NN oo v v oo PP oo ss t P o s to s C a c a 2 Compile e execute as classes de RiverRaid. Utilize para isto o javac e o L a yCo au ct a appletviewer, respectivamente. Cu on m b u s t v De el s e n hA ac e l e r a Vc e roi f i c a A t r i b u t o s d e a r L im ite s d e T e la Navegao M to d o s d e ru n Desenha M ove V e r i f i c a T a n qPu oe ss t o A t u a l C o m b u s tiv e l A c e l e ra c a o Navegao A t i ra d o r T iro s ru n Desenha M ove A t i ra d o r T i ro A ti v o C a c a D i re c a o p o n tu a c a o D i re e s T i ro s A n te ri o re s n T i ro s A ti v o s p o s s v e is A lv o A tu a l A ti ra T iro D o A tira d o r A lv o D o A tira d o r D i re c a o D o A ti ra d o r S o m a P o n to s P o n tu a c a o ru n Desenha M ove V e ri fi c a P o s to A tu a l T iro s A ti ra d o r A lv o n T i ro s A tiv o A ti ra d o rA ti v o N o m e d o A t i ra d o r G ra p h ic s C o o rd e n a d a s D ire c a o d o T iro A lv o A tu a l A tira T i ro D o A ti ra d o r A l v o D o A t i ra d o r E x p lo d e A re a D e s e n h o to S trin g T iro s A lv o C a M vo av se J o g o V e r i f i c a n ru n Desenha C o o rd e n a d a s N o m e d o A lv o D e s tru id o G ra p h i c s d o A lv o A lv o A re a D e s e n h o p a in t E x p lo d e CanvasJogo CanvasJogo C po ar i n t G ra p h i c s

. Java a gria para caf nos EUA, assim como BomBril no Brasil; esta gria foi criada quando a importao de caf para o pas provinha principalmente da Indonsia. O nove Java o nome de uma ilha vulcnica da Indonsia.
2