Вы находитесь на странице: 1из 104

1

NDICE
Captulo I Introduo ao Java .......................................................................................................................... 4 1 Histria ......................................................................................................................................................... 4 2 Caracterstica da Linguagem ........................................................................................................................ 4 2.1) Simples .................................................................................................................................................... 4 2.2) Orientada a Objeto .................................................................................................................................. 4 2.3) Distribuda............................................................................................................................................... 4 2.4) Robusta.................................................................................................................................................... 4 2.5) Segura...................................................................................................................................................... 5 2.6) Neutra em Relao a Arquitetura ............................................................................................................ 5 2.7) Portvel ................................................................................................................................................... 5 3 Applets x Aplicativos ................................................................................................................................... 5 4 Java SDK ...................................................................................................................................................... 5 4.1) Verses da linguagem ............................................................................................................................. 6 5 - Java API ........................................................................................................................................................ 6 6 Ambientes de Desenvolvimento Integrado ................................................................................................... 7 Exerccios de Reviso Captulo I: .................................................................................................................. 7 Captulo II Onde esta instalado?...................................................................................................................... 8 1 - O SDK ....................................................................................................................................................... 8 Execute 1: Documentao .......................................................................................................................... 8 2 O IDE ....................................................................................................................................................... 9 Execute 2: IDE JCreator ............................................................................................................................. 9 Captulo III Primeiro Exemplo ...................................................................................................................... 11 1 Primeiro Exemplo: Bem Vindo a Hytec!................................................................................................ 11 Execute 3: Digitando o primeiro exemplo ................................................................................................ 11 Exerccios de Reviso Captulo III: .............................................................................................................. 13 Captulo IV Fundamentos.............................................................................................................................. 14 1 Tipos Primitivos, Variveis e Operadores .................................................................................................. 14 1.1) Tipos primitivos .................................................................................................................................... 14 1.2) Variveis ............................................................................................................................................... 15 1.3) Operadores ............................................................................................................................................ 16 1.2.1) Operadores Aritmticos.................................................................................................................. 16 Execute 4: Exemplo de Operadores Aritmticos ...................................................................................... 18 1.2.2) Operadores Relacionais .................................................................................................................. 19 Execute 5: Exemplo de Operadores Relacionais ...................................................................................... 21 1.2.3) Operadores Lgicos ....................................................................................................................... 22 Execute 6: Exemplo de Operadores Lgicos ............................................................................................ 23 1.2.4) Manipulao de Strings .................................................................................................................. 24 Execute 7: Exemplo de String .................................................................................................................. 25 2 Estruturas de Controle e seleo ................................................................................................................. 25 2.1) Estrutura de seleo............................................................................................................................... 25 2.1.1) Declarao if else ........................................................................................................................ 26 Execute 7: Exemplo de estrutura de seleo IF ........................................................................................ 27 2.1.2) Declarao Switch .......................................................................................................................... 27 Execute 8: Exemplo de estrutura de seleo Switch................................................................................. 29 2.2) Estrutura de Controle ............................................................................................................................ 29 2.2.1) Declarao while ............................................................................................................................ 29 Execute 9: Exemplo de estrutura de controle while ................................................................................. 30 2.2.2) Declarao do - while..................................................................................................................... 31 Execute 10: Exemplo de Estrutura de Controle do{ }While .................................................................... 32 2.2.3) Declarao For ............................................................................................................................... 33 SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

Execute 11: Exemplo de estrutura de controle FOR................................................................................. 34 2.3) Estrutura de Controle de Erros .............................................................................................................. 35 Execute 12: Exemplo de estrutura de erro try..catch ................................................................................ 36 Execute 13: Exemplo de estrutura de erro try..finally .............................................................................. 37 2.4) Vetores .................................................................................................................................................. 38 Execute 14: Exemplo de utilizao de Vetores ........................................................................................ 39 Exerccios de Reviso Captulo IV:.............................................................................................................. 39 Captulo V Programao Orientada a Objetos............................................................................................... 41 1) Objetos e classes ...................................................................................................................................... 41 2) Atributos e comportamento ...................................................................................................................... 42 3) Criando uma classe .................................................................................... Erro! Indicador no definido. Execute 15: Exemplo de criao de classes. ............................................................................................. 49 4) Criando novos objetos (tambm chamados de instncias) ....................................................................... 50 5) O que faz o operador new ........................................................................................................................ 50 6) Acessando e Definindo variveis de classe e de instncia ................................................................ 51 7) Chamando mtodos .......................................................................................................................... 51 8) Criando classes ................................................................................................................................. 52 9) Criando Mtodos .............................................................................................................................. 52 10) A palavra-chave this e Super ............................................................................................................ 53 10.1) This ................................................................................................................................................. 53 Execute 16: Exemplo de criao de classes e mtodos............................................................................. 53 Execute 17: Exemplo de criao de classes e mtodos............................................................................. 55 11) Acessibilidade ........................................................................................................................................ 56 12) Dicas para o projeto de classes ............................................................................................................... 56 13) Herana .................................................................................................................................................. 57 Execute 18: Exemplo de criao de classes e mtodos Herana e Acessibilidade. ............................... 58 14) Classes Abstratas.................................................................................................................................... 60 15) Interface ................................................................................................................................................. 61 Exerccios de Reviso Captulo V ................................................................................................................ 62 Capitulo VI Aplicaes Grficas com a AWT .............................................................................................. 64 1) Introduo ................................................................................................................................................ 64 2) Construindo uma aplicao Grfica ......................................................................................................... 64 1) Componentes bsicos ....................................................................................................................... 65 2) Criando Janelas (Frames) ................................................................................................................. 66 Execute 19: Exemplo de criao de Janela usando componente Frame. .................................................. 66 Execute 19: Exemplo de criao de Janela usando componente Frame. .................................................. 67 Execute 20: Exemplo de criao de Janela usando componente Frame. .................................................. 69 6) Criando Rtulos (Labels) ......................................................................................................................... 70 Execute 21: Exemplo de criao de Label................................................................................................ 71 3) Criando Botes (Button)................................................................................................................... 72 Execute 22: Exemplo de criao de Button. ............................................................................................. 72 4) Criando caixa de entrada de texto (TextField).................................................................................. 74 Execute 22: Exemplo de criao de Button. ............................................................................................. 74 5) Criando Painis (Panel) .................................................................................................................... 75 Execute 23: Exemplo de criao de Panel. ............................................................................................... 75 6) Criando caixa de entrada multilinha ou memo (TextArea)............................................................... 77 Execute 24: Exemplo de criao de TextArea. ......................................................................................... 77 11) Criando caixa de lista (List) ................................................................................................................... 79 Execute 25: Exemplo de criao de List................................................................................................... 80 12) Criando caixa de seleo (Choice) ......................................................................................................... 82 Execute 26: Exemplo de criao de Choice. ............................................................................................ 82 13) Criando caixa de opo (Checkbox): ..................................................................................................... 84 Execute 27: Exemplo de criao de Checkbox......................................................................................... 84 SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

14) Criando Grupo de CheckBox (CheckboxGroup) ................................................................................... 86 Execute 28: Exemplo de criao de CheckboxGroup. ............................................................................. 86 15) Criando Menus ....................................................................................................................................... 88 Execute 29: Exemplo de criao de Menus. ............................................................................................. 90 Exerccios de Reviso do capitulo VI........................................................................................................... 92 1) A diferena entre applets e aplicativos ..................................................................................................... 95 2) Criando applets ........................................................................................................................................ 95 3) Principais atividade do applet .................................................................................................................. 95 3.1) Incializao ....................................................................................................................................... 96 3.2) Partida ............................................................................................................................................... 96 3.3) Interrupo ........................................................................................................................................ 97 3.4) Destruio ......................................................................................................................................... 97 3.5) Pintura ............................................................................................................................................... 97 Execute 30: Exemplo de criao de applets. ............................................................................................ 98 Execute 31: Exemplo de criao de applets. .......................................................................................... 100 Execute 32: Exemplo de criao de applets. .......................................................................................... 103 Exerccios de Reviso do capitulo VII ....................................................................................................... 104

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

Captulo I Introduo ao Java 1 Histria


1991 Grupo de Engenheiros da SUN queria desenvolver uma linguagem de programao de dispositivos eletrnicos: a princpio os engenheiros iniciaram o projeto usando a linguagem C++, s que a sua complexidade e os possveis erros dessa linguagem impossibilitaram o desenvolvimento do projeto. Portanto os engenheiros partiram para criao de uma linguagem que usasse o que o C++ tem de melhor e eliminando os aspectos que tornavam uma linguagem difcil. O nome do projeto era Green. O nome original Oak depois rebatizado Java. Nessa poca ningum queria comprar a tecnologia do projeto. 1994 Crescimento da WWW: foi criado um navegador WEB que podia executar applets Java. 1995 Netscape: Netscape tornou-se a primeira empresa a licenciar o Java, lanando a JavaSoft que organizou e estruturou o Java para executar em seu navegador, possibilitando uma decolagem do Java no mundo.

2 Caracterstica da Linguagem
2.1) Simples
Mesmo sendo estruturada com base no c++, a linguagem omite os maiores problemas da linguagem C++ que so os ponteiros, sobrecarga de operadores, herana mltiplas que so as maiores dores de cabea para os iniciantes.

2.2) Orientada a Objeto


A portabilidade uma das maiores caractersticas alcanadas pelo Java, pois uma das grandes vantagens de usar uma linguagem orientada a objeto. Java suporta herana, mas no herana mltipla. A ausncia de herana mltipla pode ser compensada pelo uso de herana e interface, onde uma classe herda o comportamento de sua superclasse e implementa vrias interfaces.

2.3) Distribuda
Pronta para a Internet por possuir uma biblioteca extensa para lidar com TCP/IP, como HTTP e FTP. Os aplicativos Java podem acessar uma URLs (pginas Internet) como estivesse usando um arquivo no sistema local.

2.4) Robusta
Em Java os programas so escritos de forma confiveis tentando evitar possveis erros de implementao. Java coloca nfase na verificao antecipada de possveis erros, na
SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

verificao dinmica (em tempo de execuo) e na eliminao de situaes sujeitas a erros.

2.5) Segura
A coleta de lixo a grande arma do Java, pois aqueles erros de acesso memria que bem evidenciados pelos programadores quando usam C++ so corrigidos pelos coletores de lixo que coletam esses lixos automaticamente. A eliminao do uso de ponteiros (que o responsvel principal pelos lixos deixados pelos programadores quando no usados de forma correta), portanto favorvel ao uso de vetores e outras estruturas substitutivas trazendo benefcios de segurana.

2.6) Neutra em Relao Arquitetura


O compilador gera um arquivo objeto neutro em relao arquitetura. O cdigo compilado executado em muitos processadores desde que exista uma mquina virtual. Os cdigos (bytecodes) so interpretados pela mquina virtual em qualquer mquina e convertida facilmente para cdigo nativo na mquina em tempo real.

2.7) Portvel
Java foi criada para ser portvel. O bytecodes gerado pelo compilador pode ser transportado para plataformas distintas que suportam Java (Solaris, Windows, MAC, OS, Linux e outros). No necessrio compilar o programa novamente para execut-lo em outro sistema, porque o prprio compilador Java escrito em Java de modo que ele portvel para qualquer sistema que possui o interpretador (bytecodes).

3 Applets x Aplicativos
As applets rodam embutidas em pginas WEB. As applets rodam em um ambiente restrito de segurana. Aplicativos so independentes. possvel escrever programas que rodam tanto como applets quantos como aplicativos independentes.

4 Java SDK
O ambiente de desenvolvimento de software Java, Java SDK formado essencialmente por um conjunto de aplicativos que permitem entre outras tarefas compilar e executar programas escritos na linguagem Java. Pode ser baixado gratuitamente na pagina da SUN (www.sun.com). As ferramentas bsicas do kit de desenvolvimento do Java so: compilador Java: javac interpretador de aplicativos Java (mquina virtual): java interpretador de applets java: appletviewer

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

Outras ferramentas javadoc; gerador de documentao para programas java. jar: um manipulador de arquivos comprimidos no formato java archive. Jdb: depurador de programas javae e outras.

4.1) Verses da linguagem


Java 1.0.2: essa foi verso mais difundida, e a ltima entre as verses 1.0, a verso que est embutida nos browsers mais antigos. Java 1.1.0: essa verso incorporou uma grande quantidade de funcionalidades, entre elas algumas das mais importantes, so Java RMI, JavaBeans, novo modelo de eventos, JDBC. Java 1.2: passou a chamar-se java 2 inclui vrias melhorias em relao verso 1.1, uma das principais a incluso das funcionalidades da JFC (java foundation class), a biblioteca que contm os componentes do swing. Java 1.4: ltima verso incorpora diversas melhorias e novas classes para lidar com expresses regulares.

5 - Java API
A linguagem java menor e mais simples do que C++, entretanto tem uma grande biblioteca de classes. Principais caractersticas: Classes so agrupadas em pacotes API Java2 tem cerca de 60 pacotes API pode ser consultada em http: //java.sun.com/j2se/1.4/docs/api/

Alguns dos principais pacotes do java API

Pacotes Java.applet Java.awt Java.io Java.lang

Descrio Manipulao de aplicaes applet Trabalhar com janelas e seus componentes Manipulao de entradas e sadas Manipulao de padres da linguagem

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

Java.math Java.net Java.text Java.util Javax.swing

Manipulao de definies matemticas Manipulao de rede Manipulao de texto Manipulao de utilidades Trabalhar com janelas e seus componentes

6 Ambientes de Desenvolvimento Integrado


Um ambiente de desenvolvimento integrado (IDE integrated development enviroment) um conjunto de programas que combinam um editor de codigo-fonte, um compilador, um depurador e outras ferramentas para propiciar maior conforto no desenvolvimento de programas. Entre os mais utilizados podemos citar: Jbuilder (Borland) Forte (Sun) Visual Caf (Symantec) Visual J++ (Microsoft) Jcreator (Xinox) Eclipse (eclipse)

Exerccios de Reviso Captulo I:


1. 2. 3. 4. 5. 6. O que so applets? Qual a diferena entre applets e aplicativos? O que o java SDK? Qual a verso atual do java? Quais os principais pacotes do java API e qual a utilidade? O que um IDE?

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

Captulo II Onde est instalado?


1 - O SDK
Em nossos computadores o SDK est instalado na pasta: c:\ j2sdk1.4.2_04, onde: A pasta BIN: contm o compilador (javac.exe), a mquina virtual (java), o visualizador de applets (appletviewer.exe) e vrios utilitrios do SDK. A pasta DEMO: contm cdigos fontes de demonstrao de aplicaes java. A pasta DOCS: contm a documentao do SDK A pasta INCLUDE: contm arquivos de biblioteca para execuo de aplicaes java. A pasta JRE: contm bibliotecas e utilitrios para aplicaes de rede. A pasta LIB: contm bibliotecas diversas utilizadas pelo java.

Execute 1: Documentao
1. Para verificar estas instalaes siga os passos descritos abaixo: 2. Acessar o windows explorer: (iniciar, programas, windows explorer) 3. Acessar o disco local (c:), acessar a pasta j2sdk1.4.2_04 4. Verifique as pastas instaladas. 5. Acesse a pasta DOCS, dois cliques no arquivo index.htm (nesta pasta esto as documentaes do java que sero til no decorrer do curso de java), clique no link API & Language, clique no link Java 2 Platform API Specification.

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

A seguinte tela ser exibida:

4. Navegue pelos pacotes e suas classes.

2 O IDE
O IDE (ambiente de desenvolvimento integrado) instalado em nossos computadores o JCreator (Xinox Software). De fcil compreenso e bem leve.

Execute 2: IDE JCreator


1. Para executar o JCreator siga os passos abaixo: 2. Clicar no boto iniciar, Programas, JcreatorV2LE, JcreatorLE A seguinte tela ser exibida:

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

10

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

11

Captulo III Primeiro Exemplo


1 Primeiro Exemplo: Bem Vindo a Hytec!
O IDE usado no curso ser o Jcreator desenvolvido pela Xinox Software que pode ser obtido no site (www.jcreator.com).

Execute 3: Digitando o primeiro exemplo


1. Abra o JCreator: iniciar, programas, JcreatorV2le, Jcreator Le. Acesse o menu File, opo New, opo File. Coloque o nome para o arquivo fonte de BemVindo.java, defina uma localizao para salvar esse arquivo. A janela mostrada a seguir deve ser exibida.

Ferramenta Compilar

Ferramenta Executar

Visualizao das classes, atributos e mtodos usados no programa

rea do processo de compilao e execuo da aplicao

Digite o programa nesta rea.

rea da descrio dos erros de compilao

2. Digite o programa na parte da janela onde est especificado para digitar o programa:

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

12

// BemVindo.java public class BemVindo{ // classe BemVindo public static void main(String args[ ]){ System.out.println(Bem Vindo a Hytec); } }
public um qualificador do mtodo que indica que este acessvel externamente a esta classe (para outras classes que eventualmente seriam criadas). No nos deteremos neste aspecto agora, por enquanto todos os mtodos sero declarados como public. static um qualificador que indica que o mtodo deve ser compartilhado por todos os objetos que so criados a partir desta classe. Os mtodos static podem ser invocados, mesmo quando no for criado nenhum objeto para a classe, para tal deve-se seguir a sintaxe: <NomeClasse>.<NomeMetodoStatic>(argumentos) Retornaremos a esta explicao posteriormente, por enquanto apenas necessrio saber que particularmente o mtodo main precisa ter uma qualificao porque ele chamado sem que se crie nenhum objeto de sua classe (classe BemVindo). void Semelhante ao void em C/C++, o valor de retorno da funo. Quando a funo no retorna nenhum valor ela retorna void, uma espcie de valor vazio que tem que ser especificado. main um nome particular do mtodo que indica para o compilador o incio do programa, dentro deste mtodo e atravs de interaes entre os atributos e argumentos visveis nele que o programa se desenvolve. String argv[] o argumento de main e por consequncia do programa todo. um vetor de strings que formado quando so passados ou no argumentos atravs da invocao do nome do programa na linha de comando do sistema operacional. { .... } Abre chaves e fecha chaves: delimitam um bloco de cdigo
SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

13

// classe BemVindo O uso das duas barras determina que o texto depois delas seja um comentrio que no faz parte das intrues do programa e assim para definir explicaes sobre a instruo usada no programa. No exemplo colocado a frase classe BemVindo apenas como um comentrio que no faz parte dos comandos e sim apenas uma explicao. System.out.println Chamada do mtodo println para o atributo out da classe ou objeto System. O argumento uma constante do tipo String. println assim como o writeln de Pascal, imprime a String e posiciona o cursor na linha abaixo, analogamente print no avana a linha.
3. Salvar o programa. Acesse o menu File, a opo Save All 4. Compilar o programa. Menu Build, opo Compile File. 5. Executar o programa. Menu Build, opo Execute File. 6. Programa apenas imprimiu a mensagem Bem Vindo a Hytec

Exerccios de Reviso Captulo III:


Desenvolva uma aplicao para imprimir o teu nome e sobrenome.

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

14

Captulo IV Fundamentos 1 Tipos Primitivos, Variveis e Operadores


1.1) Tipos primitivos
Ao declarar uma varivel deve-se colocar o nome e tipo dessa varivel. Java uma linguagem fortemente tipada, o que significa que todas as variveis devero ter um tipo declarado. Um tipo define um conjunto dos valores que a varivel poder armazenar. Java conta com 8 tipos primitivos:

Nome do Tipo long

Tipo inteiro

Descrio Usado para descrever um dado que utiliza nmeros inteiros. Tamanho (8 byte) Usado para descrever um dado que utiliza nmeros inteiros com tamanho menor que o tipo long.Tamanho (4 byte). Usado para descrever um dado que utiliza nmeros inteiros com tamanho menor que o tipo int. Tamanho (2 byte) Usado para descrever um dado que utiliza nmeros inteiros com tamanho menor que o tipo short. Tamanho (1 byte) Usado para descrever um dado que utiliza nmeros reais. Tamanho (8 byte) Usado para descrever um dado que utiliza nmeros reais com tamanho meno que double. Tamanho (4
Tel.: (61) 3225-7784 Braslia - DF

Int

inteiro

short

inteiro

byte

inteiro

double

ponto flutuante

float

ponto flutuante

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

15

byte) char caracter Usado para descrever apenas um caracter alfanumrico e smbolos. Tamanho (1 byte) Usado para descrever um dado que apresente apenas verdadeiro (true) ou falso (false). Tamanho (1 bit).

boolean

lgico (true ou false)

1.2) Variveis
Variveis so locais onde os dados so mantidos. Como na maioria das linguagens de programao, so de tipos especficos. O tipo de uma varivel determina o tipo de informao que pode ser armazenada nela. Variveis em Java podem ser declaradas como atributos no corpo da classe ou podem ser declaradas localmente em qualquer parte da implementao de um mtodo. A declarao de variveis no Java segue a sintaxe:

<tipo> <identificador> [= <valor inicial>];


Onde: <tipo> um dos tipos primitivos descritos no item anterior; <identificador> o nome de uma varivel para que ela possa ser identificada. <valor inicial> o contedo recebido por uma varivel no obrigatrio usar na declarao

A atribuio feita atravs do operador =:

<identificador> = <valor>;
Exemplos:

.... int qtfilhos, numpessoas; // declarao de duas variveis inteiros


SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

16

float salario = 260.5; // declarao de uma varivel real com contedo char sexo = m; // declarao de uma varivel caracter com o contedo boolean achou = false; // declarao de uma varivel lgica com contedo qtfilhos = 9; // atribui o valor 9 a varivel qtfilhos .... 1.3) Operadores
A linguagem Java oferece um conjunto bastante amplo de operadores destinados a realizar operaes aritmticas, lgicas, relacionais e atribuio.

1.2.1) Operadores Aritmticos


Como na maioria das linguagens de programao, Java possui vrios operadores aritmticos: Operador + Significado Adio Exemplo Usado para realizar operaes de adio. Por exemplo: A=5 X = A + B. O valor de X 11. Subtrao Usado para realizar operaes de subrao. Por exemplo: A=8 X=A-B O valor de X 2. * Multiplicao Usado para realizar operaes de multiplicao. Por exemplo: A=5 X=A*B O valor de X 30 B=6 B=6 B=6

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

17

Diviso

Usado para realizar operaes de diviso. Por exemplo: A = 30 X = A / B. O valor de X 5 B=6

Resto da diviso

Usado para identificar o resto da diviso entre dois nmeros inteiros. Por exemplo: A = 10 X=A%B O valor de X 4 B=6

Sinal negativo

Usado para identificar o sinal negativo de um nmero. Por exemplo: A=5 X = -A O valor de X 5

++

Incremento (+1)

Usado para incrementar (acrescentar 1) um nmero. Por exemplo: A=5 X = ++a igual X= A + 1 O valor de X 6

--

Decremento(-1)

Usado para decrementar (retirar 1) um nmero. Por exemplo: A=5 X = --A igual X = A - 1 O valor de X 4

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

18

Estes operadores aritmticos podem ser combinados para formar expresses onde deve ser observada a precedncia de avaliao de operadores. Parntesis pode ser utilizado para determinar uma forma especfica de avaliao de uma expresso. Por exemplo: 5+4*3 o resultado ser 17. (5+3)*3 o resultado ser 24. Nos exemplos o uso dos parntesis indica que deve ser feitas a soma primeira e depois a multiplicao. Caso no use o parntesis feita primeira multiplicao e depois a soma.

Execute 4: Exemplo de Operadores Aritmticos


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file, Coloque o nome do arquivo de Aritmeticos.java 3. Digite o seguinte cdigo:

//Aritmeticos.java public class Aritmeticos { public static void main(String arg[]){ // declarao e inicializao de duas variveis int a = 5; int b = 2; System.out.print(a = ); // exibe em tela o texto a= System.out.println(a); // mostra o contedo da varivel a System.out.print(b = ); // exibe em tela o texto b= System.out.println(b); // mostra o contedo da varivel b System.out.print(a = ); // exibe em tela o texto a= System.out.println(++a); // mostra o resultado da operao ++a System.out.print(b = ); //exibe em tela o texto b= System.out.println(--b); //exibe em tela o resultado da operao --b

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

19

System.out.print(a + b =); // exibe em tela o texto a+b= System.out.println (a+b); // exibe em tela o resultado de a+b System.out.print(a b =); // exibe em tela o texto a-b= System.out.println(a-b); // exibe em tela o resultado de a-b igual 5 System.out.print(a * b =); // exibe em tela o texto a * b = System.out.println(a*b); // exibe em tela o resultado de a*b 6 System.out.print(a / b = ); System.out.println(a/b); // exibe em tela o texto a / b = //exibe em tela o resultado de a / b igual 6

System.out.print(a % b = ); // exibe em tela o texto a % b = System.out.println (a%b); //exite em tela o resultado a % b igual 0 } }
4. Compilar e Executar. Verifique o resultado: a=5 b=2 a=6 b=1 a+b=7 ab=5 a*b=6 a/b=6 a%b=0

1.2.2) Operadores Relacionais


Operadores que permitem comparar valores, variveis ou resultado de expresses retornando um resultado do tipo lgico, isto falso (false) ou verdadeiro (true). Os operadores relacionais disponveis so:

Operador ==

Significado igual

Exemplo Usado para comparar se uma expresso igual outra. Por exemplo: A=5 B=8

X = A == B
SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

20

O valor de X false, pois 5 no igual a 8. != diferente Usado para comparar se uma expresso diferente da outra. Por exemplo: A=5 B=8

X = A != B O valor de X true, pois 5 no diferente de 8. > maior que Usado para comparar se uma expresso maior do que a outra. Por exemplo: A=5 X=A>B O valor de X false, pois 5 no maior do que 8. >= maior ou igual que Usado para comparar se um expresso maior ou igual a outra. Por exemplo: A=5 B=8 B=8

X = A >= B O valor de X false, pois 5 no maior ou igual a 8. < menor que Usado para comparar se uma expresso menor do que a outra. Por exemplo: A=5 X=A<B O valor de X true, pois 5 menor do que 8. <=
SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

B=8

menor ou igual que

Usado para comparar se


Tel.: (61) 3225-7784 Braslia - DF

21

uma expresso menor ou igual do que a outra. Por exemplo: A=5 B=8

X = A <= B O valor de X true, pois 5 menor do que 8.

Note que o operador igual == (usado para comparar se uma expresso igual a outra) para diferenciar da atribuio = ( usado para armazenar um valor em uma varivel).

Execute 5: Exemplo de Operadores Relacionais


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file digite o nome do arquivo de Relacionais.java, defina a localizao. 3. Digite o programa abaixo:

// Relacionais.java public class Relacionais { public static void main(String arg[]){

int a = 15; // declara a varivel inteira a e atribui o valor 15 a ela int b = 12; // declara a varivel inteira b e atribui o valor 12 a ela System.out.print(a = ); // exibe o texto a= System.out.println(a); // exibe o contedo da varivel a System.out.print(b = ); // exibe o texto b= System.out.println(b); // exibe o contedo da varivel b System.out.print(a = = b ); // exibe o texto a = = b System.out.println(a= =b); // exibe o resultado da comparao a = = b System.out.print(a != b ); // exibe o texto a != b System.out.println(a!=b); // exibe o resultado da comparao a != b

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

22

System.out.print(a > b ); System.out.println(a>b); System.out.print(a < b ); System.out.println(a<b); } }

// exibe o texto a > b // exibe o resultado da comparao a > b // exibe o texto a < b // exibe o resultado a comparao a < b

4. Compilar e executar. Verifique os resultados:


a = 15 b = 12 a == b false a != b true a > b true a < b false

1.2.3) Operadores Lgicos


Operadores que permitem conectar logicamente resultados de diferentes expresses aritmticas ou relacionais construindo assim uma expresso resultante composta de vrias partes. Operador && Significado Exemplo b = true

e lgico (and): compara valores lgicos e a = false retorna verdadeiro caso todos os valores x = a && b forem verdadeiros. A false false true true B false true false true A && B false false false true

o valor x false

||

ou lgico (or): compara valores lgicos e a = false

b = true
Tel.: (61) 3225-7784 Braslia - DF

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

23

retorna verdadeiro caso existe um valor x = a || b verdadeiro. A false false true true B false true false true A || B false true true true o valor x true

no (not): nega um valor lgico

a = false b = true x = !a O valor de x true, pois aquilo que no falso so pode ser verdadeiro. y=!b O valor de y false, pois aquilo que no verdadeiro so pode ser falso.

Execute 6: Exemplo de Operadores Lgicos


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de Aritmeticos.java 3. Digite o seguinte cdigo:

//Logicos.java public class Logicos { public static void main(String arg[]){ boolean a=false; // declara a varivel logica a com o contedo false boolean b=true; // declar a varivel logica b com o contedo true
SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

24

System.out.print("a = "); System.out.println(a); System.out.print("b = "); System.out.println(b);

// exibe o texto a = // exibe o contedo de a // exibe o texto b = // exibe o contedo de b

System.out.print("a && b = "); // exibe o texto a && b = System.out.println(a&&b); // exibe o resultado a && b System.out.print("a || b = "); System.out.println(a||b); System.out.print("!a = "); System.out.println(!a); } }
4. Compilar e executar. Verifique o resultado.
a = false b = true a && b = false a || b = true !a = true

// exibe o texto a || b = // exibe o resultado a || b // exibe o texto !a = // exibe o resultado !a

1.2.4) Manipulao de Strings


Quando voc trabalha com string em Java, voc utiliza uma instncia da classe java.lang.String. A classe prov vrios mtodos teis para se trabalhar com cadeia de caracteres (string). EXEMPLO: String vazio = ; // string vazia

String cumprimento = oi; // declarao da varivel cumprimento com o contedo oi String A = bana; // declarao da varivel A com o contedo bana String B =nada. // declarao da varivel B com o contedo nada String C = A + B; // a string C unio da varivel A com a B igual a bananada. Quando uma string concatenada com um valor que no string esse valor convertido em string String disciplina = Pro+55; // coloca na string disciplina o valor Pro55.
SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

25

Isto feito freqentemente em comandos de impresso, como no exemplo a seguir: float nota = 20 System.out.println(Nota de Programao: +nota); Ocorre a juno do texto Nota de Programao com a varivel nota. O valor da nota convertido em string exibindo portanto o resutado Nota de Programao 20.

Execute 7: Exemplo de String


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de StringDemo.java 3. Digite o seguinte cdigo:

// StringDemo.java public class StringDemo { public static void main(String a[]){ String palavra1 = "Curso"; // declarao da varivel string palavra1 igual curso String palavra2 = "Java"; // declarao da varivel string palavra2 igual Java String frase = palavra1+ " "+ palavra2; // a varivel frase recebe a unio de //palavra1 mais espao ( ) mais palavra2 System.out.println(frase); //exibe na tela o contedo da varivel frase igual // Curso Java } }
4. Compilar e executar. Verifique o resultado. Curso Java

2 Estruturas de Controle e seleo


2.1) Estrutura de seleo
As maiorias dos programas tomam decises que afetam seu fluxo. As declaraes que tomam essas decises so chamadas de declaraes de controle.

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

26

2.1.1) Declarao if else (se seno)


Sintaxe:

if ( condio ) comando1; else comando2; onde: condio: uma expresso de comparao de dados comando1: o comando caso a comparao seja verdadeira comando2: o comando caso a comparao seja falsa Traduo: Se (condio) comando1 ; seno comando 2;

Exemplo:

if ( fim = = true ) System.out.println(Trmino!); else System.out.println(Continuando...);

Para mais de um comando ser executado depois da declarao, utiliza-se o conceito de blocos, delimitados por {}.

Exemplo:

if ( fim == true ){ // comandos caso for verdadeiro a condio cont = 0; System.out.println(Trmino!); } else { // commandos caso for falso a condio cont = cont +1; System.out.println(Continuando...); }
SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

27

Execute 8: Exemplo de estrutura de seleo IF


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de ExemploIF.java 3. Digite o seguinte cdigo:

//ExemploIF.java public class ExemploIF { public static void main(String a[]){ char sexo= 'F'; // declarao da varivel caracter sexo contendo F

if (sexo == 'M') { // se o sexo for M de masculino System.out.println("Masculino"); // exibe a mensagem Masculino } else { System.out.println("Feminino"); // exibe a mensagem Feminino } } }
4. Compilar e Executar. Verifique o resultado: Feminino

2.1.2) Declarao Switch


Aceita um char, byte, short ou int como sua expresso de comparao. Esse valor procurado nas declaraes case que vem depois da declarao switch e o cdigo adequado executado.

Sintaxe:

switch ( expresso ) { case valor: comandos; break; ... default: comandos; }

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

28

onde: expresso: pode ser um valor char, byte, short ou int valor: o contedo do valor comandos: uma seguncia comandos caso o valor escolhido for igual ao conteudo default: o valor padro caso nenhum valor for escolhido break: a instruo usada para parar a execuo caso um valor seja encontrado

Traduo Escolha(expresso) { Caso valor: comandos; parar; ... outros casos: comandos; }

Exemplo: Int cmd=2; // declarao de uma varivel inteira contendo o valor 2

switch ( cmd ){ case 1: System.out.println(Item do menu 1); break; case 2: System.out.println(Item do menu 2); break; case 3: System.out.println(Item do menu 3); break; default: System.out.println(Comando invalido!); } O resultado ser a escolha do segundo valor do cmd pois igual a 2 ento exibir na tela Item do menu 2 e para (break) a execuo do comando pois encontrou um valor verdadeiro. Caso o valor do cmd fosse 4 ser impresso Comando invalido pois nehum valor foi encontrado portanto escolheu o valor padro (default usado caso no encontre nenhum valor verdadeiro).

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

29

Execute 9: Exemplo de estrutura de seleo Switch


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file, Coloque o nome do arquivo de ExemploSwitch.java 3. Digite o seguinte cdigo:

//ExemploSwitch.java public class ExemploSwitch { public static void main(String a[]){ char sexo= 'F'; // declarao da varivel caracter sexo contendo F; switch (sexo){ // escolha sexo case 'M':System.out.println("Masculino");break; // caso M case 'F':System.out.println("Feminino");break; // caso F default:System.out.println("Sexo invlido"); // outros casos } } }
4. Compilar e executar. Veja o resultado: Feminino

2.2) Estrutura de Controle 2.2.1) Declarao while


Utilizada quando no se quer que o corpo do lao seja necessariamente executado. A expresso de comparao avaliada antes que o lao seja executado. Sintaxe:

while (condio) { bloco de comandos; } onde: condio: usado para repetir enquanto a condio for verdadeira bloco de comandos: comandos usados para repetir caso a condio seja verdadeira.
SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

30

Traduo: enquanto (condio) { bloco de comandos; }

Exemplo: i = 3; salario = 260;

while ( i != 0 ){ // enquanto i for diferente de zero salario = salario + 10; i--; // i menos 1 } Nesse exemplo o valor inicial de i 3 portanto a condio satisfeito (i!=0) ocorre a execuo dos comando dentro do while (repetio) veja o que acontece i = 3 e salario = 260 entrou no while pois i diferente de 0(i!=0) { salario = 260 + 10 portanto salario = 270 i-- portanto i igual a 2 (i!=0) repete salario = 270 + 10 portanto salario = 280 i-- portanto i igual a 1 (i!=0) repete salrio = 280 + 10 portanto salrio = 290 i-- portanto i igual a 0 (i!=0) no repete pois o valor de i 0 sai do while } saiu do while

Execute 10: Exemplo de estrutura de controle while


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de ExemploWhile.java

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

31

3. Digite o seguinte cdigo:

// ExemploWhile.java public class ExemploWhile{ public static void main(String a[]){ int j = 10; // declara uma varivel inteira chamada j contendo o valor 10 while (j > 0){ // enquanto a varivel j for maior que 0 repete System.out.println(j); // exibe o valor de j j--; // decrementa o valor de j (retira 1 da varivel j) } } } 4. Compilar e executar. Veja o resultado 10 9 8 7 6 5 4 3 2 1 2.2.2) Declarao do - while
Utilizada quando se quer que o corpo do lao seja necessariamente executado. A expresso de comparao avaliada depois que o lao for executado.

Sintaxe:

do { bloco de comandos } while (condio);

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

32

Traduo: faa { blocos de comandos } enquanto (condio)

Exemplo: i = 3; salario = 260;

do { salario = salario + 10; i--; }while ( i != 0 );


Nesse exemplo ocorre a repetio:

i = 3 e salario = 260 faa { salario = 260 + 10 portanto salario = 270 i-- portanto i igual a 2 (i!=0) repete salario = 270 + 10 portanto salario = 280 i-- portanto i igual a 1 (i!=0) repete salrio = 280 + 10 portanto salrio = 290 i-- portanto i igual a 0 (i!=0) no repete pois o valor de i 0 sai do while }enquanto i for diferente de 0 saiu do while

Execute 11: Exemplo de Estrutura de Controle do{ }While


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de ExemploDoWhile.java 3. Digite o seguinte cdigo:

// ExemploDoWhile.java public class ExemploDoWhile {


SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

33

public static void main(String a[]){ int j=10; // declara uma varivel chamada j contendo o valor 10 do { // repete System.out.println(j); //exibe o valor da varivel j j--; // decrementa o valor de j ou seja retira 1 da varivel j } while (j>0); // enquanto j for maior que 0 } }

4. Compilar e Executar. Verifique o resultado:


10 9 8 7 6 5 4 3 2 1

2.2.3) Declarao For


Fornece uma expresso para inicializar as variveis, seguidas por uma expresso de comparao e depois um lugar para incrementar ou decrementar as variveis de lao. A declarao pode ser um comando simples ou um bloco de comandos.

Sintaxe:

for (valor_inicial; condio para repetir; valor de incremento) { bloco de comandos } Traduo: para (valor_inicial; condio para repetir; valor de incremento){ bloco de comandos }
Exemplo:

salario=260; for (i = 0; i < 2; i ++) { salario = salario +10;


SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

34

Nesse exemplo ocorre a repetio:


salario = 260; para (i=0; i<3; i++){ repete de 0 at 2 (0,1,2){ salario = 260 + 10 portanto o salario = 270; repete i=0 pois i < 3 salario = 270 + 10 portanto o salario = 280; repete i=1 pois i < 3 salario = 280 + 10 portanto o salrio = 290; repete i=2 pois i < 3 no repete mais pois i = 3 ento no menor que 3 } saiu da repetio

Execute 12: Exemplo de estrutura de controle FOR


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de ExemploFor.java 3. Digite o seguinte cdigo:

//ExemploFor.java public class ExemploFor { public static void main(String a[]){ int j; // declara a varivel inteira j; for (j=10;j>0;j--){ // para (j=10 ; j>0; j--) repete de 10 at 1 System.out.println(j); // exibe o valor de j } } }

4. Compilar e Executar. Verifique o resultado:


10 9 8 7 6 5 4 3 2 1

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

35

Nesse exemplo ocorre a repetio:


para (i=10; i>0; i--) { // repete de 10 at 1 { exibe o valor de i =10 repete pois i > 0 exibe o valor de i =9 repete pois i > 0 exibe o valor de i =8 repete pois i > 0 exibe o valor de i =7 repete pois i > 0 ... exibe o valor de i =1 SAI DA REPETIO POIS i = 0 portanto no maior que 10 } saiu da repetio

2.3) Estrutura de Controle de Erros


O Java oferece duas importantes estruturas para o controle de erros muito semelhantes s estruturas existentes na linguagem C++: try catch e try finally. Ambas tm o propsito de evitar que o programador tenha que realizar testes de verificao e avaliao antes da realizao de certas operaes, desviando automaticamente o fluxo de execuo para rotinas de tratamento de erro. Atravs destas diretivas, delimita-se um trecho de cdigo que ser monitorado automaticamente pelo sistema. A ocorrncia de erros no Java sinalizada atravs de excees, isto , objetos especiais que carregam informao sobre o tipo de erro detectado.

Sintaxe: try { Comandos normais que ser tratado; } catch (exception1){ Comandos de tratamento de erro1; } catch (exception2){ Comandos de tratamento de erro2; }

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

36

Traduo: Tratar { Comandos normais que ser tratado; } definir (exception1){ Comandos de tratamento de erro1; } definir (exception2){ Comandos de tratamento de erro2; } Sintaxe: try { Comandos normais; } finally { Comandos de tratamento de erro; } Traduo: Tratar { Comandos normais; } finalizar { Comandos de tratamento de erro; }

Execute 13: Exemplo de estrutura de erro try..catch


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de TratamentoErros.java
SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

37

3. Digite o seguinte cdigo:

//TratamentoErros.java public class TratamentoErros { public static void main(String args[]){ int a = 10; // declarao varivel inteira a igual 10 int b = 0; // declarao varivel inteira b igual 0 int c; // declarao varivel inteira c try { // tratar o erro c = a / b; // diviso por zero causa erro pois a =10 e b = 0, ocorre 10/0 } catch (ArithmeticException e) { // define o erro de Aritmtica System.out.println("Impossvel diviso por zero"); // exibe texto } } }

4. Compilar e Executar. Verifique o resultado: Impossvel diviso por zero

Execute 14: Exemplo de estrutura de erro try..finally


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de TratamentoErrosF.java 3. Digite o seguinte cdigo:

//TratamentoErrosF.java public class TratamentoErrosF { public static void main(String args[]){ int a = 10; // declarao da varivel a igual 10 int b = 0; // declarao da varivel b igual 0 int c; // declarao da varivel c try { // Tratar erro c = a / b; // diviso por zero causa erro
SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

38

} finally { // finaliza a execulo e exibe a mensagem de erro System.out.println("Impossvel diviso por zero"); } } }

4. Compilar e Executar. Verifique o resultado: Impossvel diviso por zero

2.4) Vetores
Vetores so objetos, eles possuem papel importante no estilo de programao dessa linguagem que exclui os ponteiros. Por serem objetos, vetores so obrigatoriamente alocados de maneira dinmica. O exemplo a seguir aloca um vetor de inteiros com trs posies, seguindo uma sintaxe semelhante alocao de objetos (que veremos mais adiante):

Sintaxe: <tipo primitivo> <nome do vetor>[ ] = new <tipo primitivo>[<tamanho do vetor>] onde: <tipo primitivo>: um dos tipos primitivos j conhecidos anteriormente. <nome do vetor>: o nome de identificao do vetor. new : criao do novo objeto vetor. <tamanho do vetor>: o tamanho das posie do vetor.

Exemplo: int x[ ] = int[3] no exemplo criado um vetor chamado x de inteiro com 3 posies

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

39

Execute 15: Exemplo de utilizao de Vetores


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de VetorTest.java 3. Digite o seguinte cdigo:

//VetorTest.java public class VetorTest { public static void main (String args[]) { int vetor[] = new int[3]; // declara um vetor de inteiros chamado vetor com 3 posies vetor[0]=0; // coloca na posio 0 o valor 0 vetor[1]=10; // coloca na posio 1 o valor 10 vetor[2]=20; // coloca na posio 2 o valor 20 int soma; // declara uma varivel inteira chamada soma; soma = vetor[0] + vetor[1] + vetor[2] // soma os valores das posies do vetor System.out.println(soma); // exibe a soma } }

4. Compilar e Executar. Verifique o resultado: 30

Exerccios de Reviso Captulo IV:


1) Desenvolva uma aplicao que declare as seguintes variveis: x e y , contendo os valores 10 e 8. resposta, contendo o valor falso. Profisso, contendo o valor Mdico Utilize os operadores para elaborar alguns resultados nas variveis descritas acima e imprima utilizando o comando System.out.println().
SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

40

2) Desenvolva uma aplicao que declare duas strings e faa a concatenao dessas strings e imprima utilizando o comando System.out.println(). 3) Desenvolva uma aplicao que conte de 1 at 10, usando os comandos (for, while e do ..While) 4) Desenvolva uma aplicao que declare duas variveis de ponto flutuante e verifique qual a varivel maior utilizando o comando if. 5) Desenvolva uma aplicao que declare uma varivel caracter chamada estacivil contendo o caracter c. Faa uma estrutura usando o switch para que possa imprimir casado caso a varivel estadocivil possua o contedo c. Solteiro quando o contedo for s. Divorciado quando o contendo for d. Vivo quando o contedo for v. Caso o contedo seja diferente dos citados acima imprima Estado civil invalido. 6) Desenvolva uma aplicao que declare um vetor de 10 posies e atribua o valor 20 a todas as posies.

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

41

Captulo V Programao Orientada a Objetos


1) Objetos e classes
A programao orientada a objetos modelada de acordo com a observao de que, no mundo fsico, os objetos so constitudos de muitos tipos de objetos menores. Entretanto, a capacidade de combinar objetos apenas um aspecto da programao orientada a objetos. Outro recurso importante o uso de classes. Uma classe um modelo usado para criar um objeto. Todo objeto criado a partir da mesma classe ter recursos semelhantes, se no idnticos. As classes incorporam todos os recursos de um conjunto especfico de objetos. Ao escrever um programa em uma linguagem orientada a objetos, voc no define objetos individuais. Em vez disso, voc define as classes usadas para criar esses objetos. Por exemplo, voc poderia criar uma classe Bola que descrevesse os recursos de todas as bolas. O tamanho da bola descrito atravs de seu raio e como tal tamanho pode ser nmero inteiro ou real utilizamos uma varivel do tipo float. Imaginando que a bola pode ou no ser oca utilizamos uma varivel lgica de nome oca que indica como true tal situao e false (caso contrrio). Valores inteiros, representando cdigo do material e cor pode ser usada para acrescentar outros detalhes na descrio do objeto. A descrio do objeto em termo de classe o que deve ser ressaltado que esta classe prope o que denominamos modelo conceitual para o objeto bola. A descrio do objeto em classe denominado modelagem orientada a objetos, uma das etapas mais importante do desenvolvimento do software utilizando orientao a objetos. Utilizando a notao UML (so desenhos que representam a modelagem das classes como mostrado abaixo) temos a seguinte representao de uma classe e seus atributos (caractersticas dos objetos ou propriedade dos objetos):

Bola

Definio da classe Bola

cor: int material: int oca: boolean raio: float

Atributos do objeto da classe

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

42

Onde cor, material, oca e raio so os atributos que descrevem as caractersticas do objeto da classe Bola. Para modelar as classes usaremos a notao UML para melhor estruturar as classes, seus atributos e mtodos.

2) Atributos e comportamento
Uma classe Java consiste em dois tipos de informao: atributos e comportamento. Ambos esto presentes em Vulcao, um projeto que voc implementar hoje como uma classe. Esse projeto, uma simulao por computador de um veculo de explorao vulcnica. Os atributos so os dados que diferenciam um objeto do outro. Eles podem ser usados para determinar a aparncia, o estado e outras qualidades dos objetos pertencentes a essa classe. Um veculo de explorao vulcnica poderia ter os seguintes atributos: - informaes: explorando, movendo, retornando ao incio. - Velocidade: em milhas por hora - Temperatura: em grau fahrenheit Em uma classe, os atributos so definidos atravs de variveis (lugares para armazenar informaes em um programa de computador) Comportamento se refere s atividades que uma classe de objetos pode realizar neles mesmos e em outros objetos. Ele pode ser usado para alterar os atributos de um objeto, receber informaes de outros objetos e enviar mensagens para outros objetos que estejam solicitando a eles a realizao de tarefas. Um rob de vulco poderia ter o seguinte comportamento: - verificar a temperatura atual - iniciar um levantamento - relatar sua localizao atual O comportamento de uma classe de objetos implementado atravs de mtodos. Os mtodos so grupos de instrues relacionadas em uma classe de objetos em seus prprios objetos e em outros e so utilizados da mesma maneira que as funes e subrotinas so usadas em outras linguagens de programao. Os objetos se comunicam entre si atravs de mtodos. Uma classe ou um objeto pode chamar mtodos de outra classe ou objeto por muitos motivos, incluindo os seguintes:
SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

43

- para relatar uma alterao em outro objeto - para dizer ao outro objeto para alterar algo a respeito de si mesmo - para pedir que o outro objeto faa algo

Sintaxe de um mtodo pblico: public <tipo de retorno> <nome do mtodo>(<argumentos>){ instrues executadas pelo mtodo return <varivel de retorno> } onde: <tipo de retorno>: so os tipos primitivos estudados anteriormente. <nome do mtodo>: um nome que identifica um mtodo. <argumentos>: so dados que devem ser passados para o mtodo. return: o comando usado para retorna o valor definido pelo mtodo. <varivel de retorno>: a varivel usada para retorna o valor usado no mtodo.

Exemplo: public int soma(int x, int y){ int s; s = x + y; return s; } no exemplo descrito acima criado um mtodo pblico chamado soma que do tipo de retorno inteiro e recebe os argumentos x,y que so inteiro. A varivel s usada para fazer a soma de x mai y. A varivel s usada para retornar o valor do soma de x com y. System.out.println(soma(10,8)); O comando acima mostra a utilizao do mtodo soma que recebe os valores 10 para x e 8 para y. Portanto ao chamar o mtodo ser feita a soma de x com y dando o resultado de 18, pois esta usando o comando para exibir essa soma atravs do mtodo.
SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

44

3) Criando uma classe

Execute : Exemplo de criao de classes.


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de Bola.java 3. Digite o seguinte cdigo:
//Bola.java public class Bola { // declarao da classe bola o commando class define a declarao da classe

//atributos: so os dados que define a caracterstica da classe Bola String cor; String material; boolean oca; float raio; //mtodos: so comportamentos que podem alterar um atributo de uma classe /* este mtodo obterCor() retorna uma string representando a cor da Bola. Onde public a assinatura tornando este mtodo pblico para usar em qualquer programa. String o tipo de retorno do mtodo. obterCor o nome do mtodo. O abrir e fechar parntesis indicam que um mtodo sem argumentos. */ public String obterCor(){ return cor; // retorna a cor; }

/* este mtodo obterMaterial() retorna uma string representando o material da Bola. Onde public a assinatura tornando este mtodo pblico para usar em qualquer parte do programa. String o tipo de retorno do mtodo. obterMaterial o nome do mtodo. O abrir e fechar parntesis indicam que um mtodo sem argumentos. */ public String obterMaterial(){ return material; } /* este mtodo obterOca() retorna true ou false representado se a Bola oca ou no. Onde public a assinatura tornando este mtodo pblico para usar em qualquer parte do programa. boolean o tipo de retorno do mtodo. obterOca o nome do mtodo. O abrir e fechar parntesis indicam que um mtodo sem argumentos. */ public boolean obterOca(){ return oca; }

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

45

/* este mtodo obterRaio() retorna ponto flutuante para o valor do raio. Onde public a assinatura tornando este mtodo pblico para usar em qualquer parte do programa. float o tipo de retorno do mtodo. obterRaio o nome do mtodo. O abrir e fechar parntesis indicam que um mtodo sem argumentos. */ public float obterRaio(){ return raio; }

// mtodo sem retorno (usa o comando void ) e com argumento (String c) para mudar a cor da bola public void mudarCor(String c){ cor = c; } // mtodo sem retorno (usa o comando void ) e com argumento (String m) para mudar a material da bola public void mudarMaterial(String m){ material = m; } // mtodo sem retorno (usa o comando void ) e com argumento (boolean o) para mudar oca da bola public void mudarOca(boolean o){ oca = o; } // mtodo sem retorno (usa o comando void ) e com argumento (float r) para mudar o raio da bola public void mudarRaio(float r){ raio = r; } // mtodos sem retorno e sem argumentos imprimirInfoBola: usado para imprimir as informaes da bola public void imprimirInfoBola(){ System.out.println("Cor.....: "+obterCor()); // exibe informao da cor da bola System.out.println("Material: "+obterMaterial()); // exibe informao do material da bola System.out.println("Oca.....: "+obterOca()); // exibe informao do oco da bola System.out.println("Raio....: "+obterRaio()); // exibe informao do raio da bola System.out.println(""); // exibe uma linha em branco }

// mtodo principal da aplicao public static void main(String a[]){ /* cria um novo objeto chamado bl a partir da classe Bola. O comando new usado para criar o objeto a partir do modelo (classe) Bola */ Bola b1 = new Bola(); // mudando o conteudo dos atributos da bola atravs da notao de ponto que indica o objeto.atributo b1.cor = "Branca"; b1.material = "Couro"; b1.oca = true; b1.raio = 2; SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

46

// imprimindo informaes da bola atravs da notao de ponto objeto.mtodo b1.imprimirInfoBola(); /* mudando o conteudo dos atributos da bola usando os mtodos atravs notao de ponto objeto.mtodo. */ b1.mudarCor("Vermelha"); // chama o mtodo mudarCor colocando a cor vermelha b1.mudarMaterial("Plastico"); // chama o mtodo mudarMaterial colocando o material plastico b1.mudarOca(false); // chama o mtodo mudarOca colocando o valor false b1.mudarRaio(3); // chama o mtodo mudarRaio colocando o valor 3 no raio // imprimindo informaes da bola b1.imprimirInfoBola(); } }

4. Compilar e Executar. Verifique o resultado:


Cor.......: Branca Material: Couro Oca.......: true Raio......: 2.0 Cor.......: Vermelha Material: Plastico Oca.......: false Raio......: 3.0

Execute : Exemplo de criao de classes.


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de Pai.java 3. Digite o seguinte cdigo: //Pai.java
public class Pai { // atributo String nome, corcabelo, corolhos,sobrenome; int idade; // mtodo construtor sem argumentos que define os atributos com os contedos public Pai(){ nome = "Jose"; sobrenome="Rocha"; corcabelo="Preto"; corolhos="Preto"; idade=56; SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

47

} // construtor com argumentos. public Pai(String n, String s, String c, String o, int i){ nome = n; sobrenome=s; corcabelo=c; corolhos=o; idade=i; } // mtodos sem argumentos e com retorno public int obterIdade(){ // mtodo usado para retornar a idade inteira return idade; // retorna a idade } public String obterCorCabelo(){ // mtodo usado para retornar a cor do cabelo string return corcabelo; // retorna a cor do cabelo } public String obterCorOlhos(){ // mtodo usado para retornar a cor dos olhos string return corolhos; // retorna a cor dos olhos } public String obterNome(){ return nome; } public String obterSobrenome(){ return sobrenome; } // mtodo usado para retornar o nome string // retorna o nome

// mtodo usado para retornar o sobrenome string // retorna o sobrenome

// mtodos sem retorno void usado para mostrar as informaes dos atributos public void imprimirInfo(){ System.out.println("Nome...........: "+obterNome()+" "+obterSobrenome()); System.out.println("Cor dos Cabelos: "+obterCorCabelo()); System.out.println("Cor dos Olhos:.: "+obterCorOlhos()); System.out.println("Idade..........: "+obterIdade()); System.out.println(""); } //mtodos com argumentos e sem retorno public void mudarIdade(int i){ // mudar a idade idade = i; } public void mudarCorCabelo(String c){ corcabelo=c; } // mudar a cor do cabelo

public void mudarCorOlhos(String o){ // mudar a cor dos olhos corolhos=o; } SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

48

public void mudarNome(String n){ nome=n; }

// mudar o nome

public void mudarSobrenome(String s){ sobrenome=s; }

// mudar o sobrenome

// mtodo principal da aplicao public static void main(String a[]){ // construindo os objetos Pai p1 = new Pai(); // cria o objeto p1 a partir da classe Pai // Criar o objeto p2 a partir da classe Pai atribuindo as caractersticas do Pai Pai p2 = new Pai("Carlos","Sousa","Loiros","Azuis",38); // imprimindo as informaes p1.imprimirInfo(); // exibe informaes do objeto p1 p2.imprimirInfo(); // exibe informaes do objeto p2 // alterando as informaes p1.mudarNome("Sandro"); // muda o nome do objeto p1 p2.mudarIdade(54); // muda a idade do objeto p2 // imprimindo as informaes p1.imprimirInfo(); // exibe informaes do objeto p1 p2.imprimirInfo(); // exibe informaes do objeto p2 } }

4. Compilar e Executar. Verifique o resultado:


Nome................: Jose Rocha Cor dos Cabelos: Preto Cor dos Olhos...: Preto Idade.................: 56 Nome................: Carlos Sousa Cor dos Cabelos: Loiros Cor dos Olhos...: Azuis Idade.................: 38 Nome................: Sadro Rocha Cor dos Cabelos: Preto Cor dos Olhos...: Preto Idade.................: 56 Nome................: Carlos Sousa Cor dos Cabelos: Loiros Cor dos Olhos...: Azuis Idade.................: 54 SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

49

Para ver classes objetos, atributos e comportamentos em ao, voc desenvolver uma classe Vulcao, criar objetos a partir dela e trabalhar com eles em um programa funcional.

Execute 16: Exemplo de criao de classes.


1. Abra o Jcreator. 2.Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de Vulcao.java 3.Digite o seguinte cdigo:
// Vulcao.java public class Vulcao { // atributos String informacao; int velocidade; float temperatura; // mtodos (comportamento) /* este mtodo no possui retorno (void). Seu nome checarTemperatura no possui argumentos. Este mtodo verifica se a temperatura superior a 660 caso seja ele muda o atributo informacao=Retornando ao inicio e velocidade=5 public void checarTemperatura( ) { if (temperatura > 660){ informacao = "Retornando ao inicio"; velocidade = 5; } }

public void mostrarAtributos(){ // este mtodo mostra as informaes dos atributos System.out.println("Informacao : "+informacao); System.out.println("Velocidade : "+velocidade); System.out.println("Temperatura: "+temperatura); } // executando o programa public static void main(String a[]){ Vulcao dante = new Vulcao(); // criando o objeto dante da classe vulcao dante.informacao = "Explorando"; // mudando o atributo informacao do objeto dante dante.velocidade = 2; // mudando o atributo velocidade do objeto dante dante.temperatura = 510; // mudando o atributo temperatura do objeto dante dante.mostrarAtributos(); // exibe as informaes do objeto dante } } SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

50

4. Compilar e Executar. Verifique o resultado:


Informacao : explorando Velocidade : 2 Temperatura: 510

4) Criando novos objetos (tambm chamados de instncias)


Para criar um novo objeto, voc usa o operador new como o nome da classe da qual deseja criar uma instncia, seguida do parnteses: String name = new String(); URL endereco = new URL(http://www.hytec.com.br); Vulcao robbie = new Vulcao(); Os parnteses so importantes; no se esquea de us-los. Eles podem estar vazios, caso em que o objeto bsico mais simples criado, ou podem conter argumentos que determinam os valores iniciais de variveis de instncia ou outras qualidades iniciais desse objeto. Os exemplos a seguir mostram objetos sendo criados com argumentos: Random numero = new Random(6068460714); Point pt = new Point(0,0); O nmero e o tipo dos argumentos que voc usa dentro dos parnteses com o operador new so definidos pela prpria classe, usando um mtodo especial chamado construtor.

5) O que faz o operador new


Vrias situaes acontecem quando voc usa o operador new. A nova instncia da classe dada criada, uma memria alocada para ela e um mtodo especial, definido na classe, chamado. Esse mtodo especial chamado construtor. Construtores so mtodos especiais para a criao e inicializao de novas instncias de classes. Eles inicializam o novo objeto e suas variveis, criam todos os outros objetos de que esse objeto necessita e realizam todas as outras operaes que ele precisa para ser inicializado. Cada uma das vrias definies de construtor em uma classe tem um nmero ou tipo de argumento diferente. Quando voc usa o operador new, pode especificar diferentes argumentos na respectiva lista e o construtor correto desses argumentos chamado.
SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

51

Para obter o valor de uma varivel de instncia, voc usa a notao ponto. Com essa notao, o nome de uma varivel de instncia ou de classe possui duas partes: uma referncia a um objeto ou classe no lado esquerdo do ponto e a varivel no lado direito. A notao de ponto um modo de fazer referncia varivel de instncia e aos mtodos de um objeto usando um operador de ponto(.). Por exemplo, dante.velocidade = 2, o objeto dante obtm valor da velocidade que uma varivel de instncia. Voc utiliza a varivel de instncia para acessar variveis da classe. Chamar um mtodo em um objeto semelhante a fazer referncia a suas variveis de instncia: a notao ponto usada. O objeto cujo mtodo voc est chamando fica do lado esquerdo do ponto e o nome do mtodo e seus argumentos ficam no lado direito. Por exemplo: dante.mostrarAtributos(); dante.checarTemperatura();

6) Acessando e Definindo variveis de classe e de instncia


As variveis de classe e instncia se comportam do mesmo modo que as variveis locais. possvel us-las em expresses, atribuir valores a elas em instrues e outras atividades. Voc precisa fazer referncia a elas em seu cdigo de modo ligeiramente diferente do que e utilizado com as variveis normais. Para obter o valor de uma varivel de instncia, voc usa a notao de ponto. Com essa notao o nome de varivel de instncia ou de classe possui duas partes: uma referencia ao objeto ou classe no lado esquerdo do ponto e a varivel no lado direito. Por exemplo: dante. velocidade; // obtendo valores

dante.velocidade = 400 // alterando valores

Essa forma de acessar variveis e uma expresso (isto , ela retorna um valor) e os dois lados do ponto tambm so expresses.

7) Chamando mtodos
Chamar um mtodo em um objeto e semelhante a fazer referncia a suas variveis de instncia: notao de ponto usada. O objeto cujo mtodo voc est chamando fica no lado esquerdo do ponto e o nome do mtodo e seus argumentos ficam no lado direito. Por exemplo: dante.checarTemperatura(); dante.mostrarAtributos.

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

52

8) Criando classes
Ela definida atravs da palavra-chave class e do nome da classe como exemplo a seguir: class Bola{ //corpo da classe } Por definio, as classes herdam da classe Object. Essa a superclasse na hierarquia de classes Java. A palavra-chave extends usada para indicar a superclasses de uma classe. Veja a seguinte subclasse de bola: class BolaFutebol { //corpo da classe }

9) Criando Mtodos
Os mtodos definem o comportamento de um objeto e tudo o que acontece quando ele criado e as diversas tarefas que pode realizar durante sua existncia. As definies dos mtodos tem quatro partes bsicas: Nome do mtodo; Uma lista de parmetros; Tipo de objeto ou tipo primitivo retornado pelo mtodo; corpo do mtodo. Sintaxe bsica do mtodo: Tipo nomedometodo(tipo arg1, tipo arg2, tipo arg3...){ // corpo do mtodo }

Por exemplo:

public void mostrarAtributos(){ System.out.println("Informacao : "+informacao); System.out.println("Velocidade : "+velocidade); System.out.println("Temperatura: "+temperatura);


SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

53

10) A palavra-chave this e Super 10.1) This


Usado para fazer referncia ao objeto atual e voc pode us-la em qualquer parte na qual uma referncia a um objeto possa aparecer: em uma notao de ponto, como argumento para um mtodo, como valor de retorno do mtodo atual. Alguns exemplos de this so mostrados abaixo: t = this.x; // a varivel de instncia x deste objeto this.resetData(this); // chama mtodo resetData, definido nessa classe, e passa para o //objeto corrente

return this; 10.2) Super

//retorna o objeto corrente

Usado para fazer referncia a uma classe mais acima de outra na hierarquia de classes, sua subclasse. Uma classe pode ter apenas uma superclasse imediatamente superior, mas esta tambm pode ter uma superclasse e assim por diante. t = super.x; a varivel de instncia x da classe superior super.resetData(this); // chama mtodo resetData, definido na classe superior return super; // retorna o objeto da classe superior super() //construtor da classe superior

Execute 17: Exemplo de criao de classes e mtodos.


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de MaquinaLavar.java

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

54

3. Digite o seguinte cdigo:


// MaquinaLavar.java public class MaquinaLavar { public int velocidade; // classe chamada MaquinaLavar // atributo da classe

// mtodos construtores public MaquinaLavar(int velocidade){ this.velocidade=velocidade; // this, define que o atributo velocidade da classe recebe // a varivel velocidade do mtodo MaquinaLavar } //mtodos public int aumentarVelocidade (){ return velocidade++; } public int diminuirVelocidade(){ return --velocidade; } public int obterVelocidade(){ return velocidade; } public void setVelocidade(){

// mtodo usado para aumentar a velocidade da maquina // retorna o valor da velocidade + 1

// mtodo usado para diminuir a velocidade da maquina // retorna o valor da velocidade -1

// mtodo usado para coletar o valor da velocidade // retorna o valor da velocidade

// Mtodo usado para verificar o valor da velocidade

if (velocidade<0) { // se velocidade menor que zero. Zerar o valor System.out.print("Velocidade invalida.\n Parando motor..."); velocidade =0; } if (velocidade>100){ // se velocidade maior que 100. Voltar a 99. System.out.print("Hiperaquecimento. Reduzindo velocidade para 99"); velocidade=99; } }

// mtodo usado para desenvolver a aplicao public static void main(String args[]){ int y=0,x=0; MaquinaLavar veloMaquina = new MaquinaLavar(0); do { y=veloMaquina.diminuirVelocidade(); x++; } while(x<5); System.out.print(y); veloMaquina.setVelocidade(); SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

55

} }

4. Compilar e executar veja o resultado: 5 Velocidade invlida

Execute 18: Exemplo de criao de classes e mtodos.


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de Lampada.java 3. Digite o seguinte cdigo:
//Lampada.java public class Lampada { //atributos boolean ligada; int y; //construtores public Lampada() { ligada = true; } public Lampada(boolean ligada){ this.ligada = ligada; } public Lampada(int z){ y=z; } //mtodos public void seLigada(){ if ((ligada ==true) || (y==1)) { System.out.print("A lampada esta ligada"); } else { System.out.print("A lampada no esta ligada"); } } // programa principal public static void main(String args[]){ Lampada neon = new Lampada(); neon.ligada=false; SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

56

neon.seLigada(); } }

4. Compilar e executar veja o resultado: A lampada no esta ligada

11) Acessibilidade
Acessibilidade de uma classe, mtodo ou atributo de uma classe a forma como que tal pode ser visto e utilizado por outras classes. Este conceito mais conhecido como encapsulamento (ocultando dados) sendo muito importante dentro da orientao a objeto. A determinao de acessibilidade de uma classe ou membro de uma classe feita pelos qualificadores de acesso, ou seja palavras reservadas da linguagem que determina o grau de encapsulamento exibe por uma classe ou elementos. Abaixo uma pequena tabela esquematizando a acessibilidade de elementos declarados em uma classe. Mtodos Classe Private Protected Package Public e Atributos da Implementao da Classe Instncia da Classe

sim sim sim sim

no no sim sim

12) Dicas para o projeto de classes


Mantenha os dados da classe como privados: Assim so necessrios mtodos de acesso para os atributos. por exemplo:

// atributo private double frequencia; // mtodo de acesso public double getFrequencia(){ return frequencia; }

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

57

// mtodo de alterao public void setFrequencia(double f){ frequencia = f; }


Se os dados no podem ser privados faa-os protegidos Sempre inicialize atributos e variveis. Por exemplo:

public class Exemplo{ //atributos private int a; private int b //construtor public Exemplo(){ a = 0; b = 0; } }
Evite o uso de muitos tipos bsicos em uma classe. Nem todos os atributos necessitam de mtodos de acesso. Padronize a estrutura de suas classes. Divida classes com muita responsabilidade. Utilize nomes significativos na denominao das classes.

13) Herana
Herana o compartilhamento de atributos e operaes entre classes baseado num relacionamento hierrquico do tipo pai e filho, ou seja a classe pai contm definies que podem ser utilizadas nas classes definidas como filho. A classe pai o que se denomina classe base ou superclasse e as classes filho so chamadas de classes derivadas ou subclasses. Este mecanismo sugere que uma classe poderia ser definida em termos mais genricos ou amplos e depois refinada sucessivamente em uma ou mais subclasses especficas. Da a origem do termo tcnico que descreve a herana: especializao.

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

58

Em Java indicamos que uma classe derivada de uma outra classe utilizando a palavra reservada extends conforme o trecho simplificado de cdigo dado a seguir: A superclasse no recebe qualquer indicao especial. Por exemplo:
//Superclasse.java public class SuperClasse { . . . } //SubClasse.java public class SubClasse extends SuperClasse { . . . }

Execute 19: Exemplo de criao de classes e mtodos Herana e Acessibilidade.


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file, Coloque o nome do arquivo de LiquidificadorGenerico.java 3. Digite o seguinte cdigo:
//LiquidificadorGenerico.java public class LiquidificadorGenerico { //atributos protected int velocidade; protected int velocidadeMaxima; //Construtores public LiquidificadorGenerico( ){ velocidade = 0; velocidadeMaxima = 2; } public LiquidificadorGenerico(int v){ this( ); ajustarVelocidadeMaxima(v); } //mtodos protected void ajustarVelocidadeMaxima(int v) { if (v > 0) SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

59

velocidadeMaxima = v; } protected void ajustarVelocidade(int v){ if (v > 0 && v<=velocidadeMaxima) velocidade = v; } public int obterVelocidadeMaxima( ) { return velocidadeMaxima; } public int obterVelocidade( ){ return velocidade; } }

4. Compilar 5. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de LiquidificadorAnalogico.java 6. Digite o seguinte cdigo:
//LiquidificadorAnalogico.java public class LiquidificadorAnalogico extends LiquidificadorGenerico { //construtor public LiquidificadorAnalogico( ){ velocidade =0 ; } //mtodos public void aumentarVelocidade(){ ajustarVelocidade(velocidade +1); } public void diminuirVelocidade( ){ ajustarVelocidade(velocidade 1); } }

7. Compilar 8. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de LiquidificadorDigital.java 9. Digite o seguinte cdigo:
//LiquidificadorDigital.java SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

60

public class LiquidificadorDigital extends LiquidificadorGenerico { //construtor public LiquidificadorDigital( ){ velocidade =0 ; } //mtodos public void trocarVelocidade(int v){ // aciona mtodo protegido para troca de velocidade ajustarVelocidade(v); } }

10. Compilar 11. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de LiquidificadorTestar.java 12. Monte uma aplicao para utilizar os atributos e mtodos das classes LiquidificadorAnalogico e LiquidificadorDigital 13. Compilar e executar.

14) Classes Abstratas


Em algumas circunstncias desejamos orientar como uma classe deve ser implementada, ou melhor, como deve ser a interface de uma certa classe. Em outros casos, o modelo representado to amplo que certas classes tornam-se por demais gerais, no sendo possvel ou razovel que possuam instncias. Para estes casos dispomos das classes abstratas Tais classes so assim denominadas por no permitirem a instanciao, isto , por no permitirem a criao de objetos do seu tipo. Sendo assim seu uso dirigido para a construo de classes modelo, ou seja, de especificaes bsicas de classes atravs do mecanismo de herana. Uma classe abstrata deve ser estendida, ou seja, deve ser a classe base de outra, mais especifica que contenha os detalhes que no puderam ser includos na superclasse (abstrata). Outra possvel aplicao das classes abstratas a criao de um ancestral comum para um conjunto de classes que, se originados desta classe abstrata, podero ser tratados genericamente atravs do polimorfismo. Uma classe abstrata, como qualquer outra, pode conter mtodos mas tambm pode adicionalmente conter mtodos abstratos, isto , mtodos que devero ser implementados em suas subclasses no abstratas.
SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

61

Sintaxe classe abstrata: public abstract class NomedaClasse { // cdigo aqui }

Sintaxe do mtodo abstrato: public abstract retorno nomeDoMetodo(argumentos...){ // cdigo aqui }

Para definir uma classe ou mtodo abstrato basta acrescentar o qualificador abstract a classe ou ao mtodo. Mtodos abstratos obrigam que as subclasses tenham que implement-los.

15) Interface
O Java permite a definio de um tipo especial de classe denominada interface. Uma interface uma classe que permite obter resultados semelhantes aos obtidos com a herana mltipla, isto , permite o compartilhamento das interfaces das classes envolvidas sem o compartilhamento de suas implementaes, levando ao extremo o conceito da orientao objetos. Isto significa que, embora o Java no oferece os mecanismos de herana mltipla (quando uma classe compartilha a interface e implementao de vrias classes base simultaneamente), possvel obter-se a melhor parte da herana mltipla (ao compartilhamento apenas da interface da classe) atravs deste novo mecanismo. O nome interface se origina exatamente do fato que o que se pretende uma definio compartilhvel da interface propriamente dita de uma classe mas no de sua implementao efetiva. A vantagem de utilizar-se as interfaces a definio de um protocolo entre classes, isto , uma especificao do que uma classe deve oferecer e implementar em termos de seus mtodos o que resulta numa poderosa abstrao. Uma interface pode ser declarada como exemplificado a seguir: interface NomeDaInterface { // declarao de atributos // declarao de mtodos sem implementao }

Os mtodos devero obrigatoriamente ser implementados nas classes que utilizarem a interface.
SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

62

Exerccios de Reviso Captulo V


Construir um conjunto de classes que permita realizar os clculos da folha de pagamento de acordo com o tipo de empregado. Fazer uso de uma superclasse abstrata Trabalhador. As subclasses de Trabalhador so: TrabalhadorChefe: pago com um salrio fixo semanal independente do nmero de horas trabalhadas. TrabalhadorComisso: pago com um salrio bsico simples mais uma porcentagem sobre os itens vendidos. TrabalhadorProduo: pago pelo nmero de itens produzidos. TrabalhadorHorista: pago por hora com um adicional de hora extra.

As subclasses de Trabalhador devem implementar uma interface que contenha pelo menos o mtodo clculo. A classe Trabalhador deve conter um construtor que aceite o nome e o sobrenome do empregado como parmetros. A classe tambm deve conter os seguintes mtodos: getPrimeiroNome que retorna o nome. getSobrenome que retorna o sobrenome. toString que retorna o nome e o sobrenome separados por um espao. A classe Trabalhador Chefe deve conter um construtor que aceita um nome, um sobrenome e um salrio semanal como argumentos. A classe tambm deve conter os seguintes mtodos: setSalarioSemanal para atribuir um novo valor varivel de instncia privada salarioSemanal. Calculo para calcular o valor do salrio de um chefe ToString que forma um String contendo o tipo de empregado (isto , Chefe: ) seguido pelo nome do empregado chefe e o salrio que recebe. A classe TrabalhadorComissao deve conter um construtor que aceita um nome, um sobrenome, um salrio, uma comisso e uma quantidade de itens vendidos como argumentos. A classe tambm dever conter os seguintes mtodos: setSalario, setComissao e setQuantidade para atribuir um novo valor s variveis de instncia privativas salrio, comisso e quantidade, respectivamente. calculo para calcular o valor do salrio de um trabalhador por comisso toString que forma um String contendo o tipo do empregado (Isto , Trabalhador por comisso:) seguido pelo nome do empregado e o salrio que recebe. A classe TrabalhadorProducao deve conter um construtor que aceita um nome, um sobrenome, um salrio por item produzidos, uma quantidade de itens produzidos. A classe tambm deve conter os seguintes mtodos: setSalario e setQuantidade para atribuir um novo valor s variveis de instncia privativas salario e quantidade, respectivamente. calculo para calcular o valor do salrio de um trabalhador por produo toString que forma um String contendo o tipo do empregado (isto ,Trabalhador por produo) seguido pelo nome do empregado e o salrio que recebe. A classe TrabalhadorHorista deve conter um construtor que aceita um nome, um sobrenome, um salrio e uma quantidade de horas trabalhadas. A classe tambm deve conter os seguintes mtodos: setSalario e setQuantidade para atribuir um novo valor s variveis de instncia privativas salario e horas. calculo para calcular o valor do salrio de um trabalhador horista. ToString que forma uma String contendo o tipo de empregado (isto ,Trabalhador Horista: ) seguido pelo nome do empregado e o salrio que recebe.

Deve ser feito uma aplicao para utilizar essas classes.


SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

63

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

64

Capitulo VI Aplicaes Grficas com a AWT


1) Introduo
Aplicaes grficas so aquelas destinadas a execuo dentro dos ambientes grficos oferecidos por vrios sistemas operacionais. Uma GUI um ambiente que oferece uma interface mais simples e intuitiva para os usurios. Cada sistema operacional pode oferecer GUIs com aparncias distintas. A linguagem Java oferece capacidades nicas no desenvolvimento de aplicaes grficas que, sem modificao ou recompilao, podem ser executadas em diferentes ambientes grficos, uma vantagem significativa alm do prprio desenvolvimento de aplicaes grficas. Um dos elementos chave do sucesso das GUIs a utilizao de componentes padronizados para representao e operao da interface em si. Um componente GUI um objeto visual com o qual o usurio pode interagir atravs do teclado ou mouse, permitindo realizar uma ou algumas dentre diversas operaes: entrada de valores numricos ou de texto, a seleo de itens em listas, a marcao de opes, o desenho livre, o acionamento de operaes etc. O Java oferece uma ampla biblioteca de componentes GUI e de capacidades grficas na forma de classe pertencentes ao seu pacote java.awt, mais conhecido como AWT. A AWT oferece classes comuns e abstratas relacionadas a renderizao e obteno de informaes do sistema grfico oferecido pela plataforma sobre a qual opera a mquina virtual Java.

2) Construindo uma aplicao Grfica


Para construir uma aplicao grfica necessrio projetar uma interface para a aplicao, isto , necessrio selecionar quais os componentes sero utilizados, qual o objetivo de sua utilizao e qual a disposio desejada para tais componentes. A partir desse planejamento bsico devemos adicionar cdigo para praticamente tudo pois o SDK no oferece uma interface para construo visual de interfaces grficas tal como o Visual Basic ou Borland Delphi. A implementao de uma aplicao grfica envolve trs passos simples: Instanciao dos componentes selecionados: cada componente a ser adicionado na interface deve ser individualmente instanciado. Como um componente uma classe, basta instanciar um objeto da classe desejada para criarmos um componente. Se for necessrio referenciar o componente posteriormente deve ser mantida uma varivel para tal finalidade.

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

65

Adio do componente na interface: todos os componentes que devero ser exibidos na interface devem ser individualmente adicionado a esta, ou seja, cada um dos componentes deve ser adicionado a janela. Registro dos mtodos processadores de eventos: a interface das aplicaes verdadeiramente renderizada pela GUI oferecida pelo sistema operacional. Assim sendo, quando ocorre a interao do usurio com a aplicao atravs do teclado ou mouse, o sistema operacional envia para a aplicao responsvel pela janela uma srie detalhada de mensagens narrando o tipo e forma da interao do usurio mtodos especiais capazes de receber tais mensagens devem ser adicionados a aplicao e associados aos componentes que desejamos ser capazes de reagir interao com o usurio.

3)Componentes bsicos
Como mencionado anteriormente o pacote java.awt.Component a base para construo de todos os componentes GUI oferecidos pelo Java atravs o pacote java.awt. Esta classe oferece a infra-estrutura necessria para criao de objeto que possuam uma representao grfica que pode ser exibida na tela e com a qual o usurio pode interagir. Os componentes bsicos so listados abaixo: Componente Button Checkbox Classe Button Checkbox Pacote Funo

java.awt Criar botes java.awt Criar caixa de opes java.awt Criar um grupo de botes de opo java.awt Criar Caixa de seleo java.awt Criar janela completa java.awt Criar rtulo de texto java.awt Criar caixa de listagem java.awt Criar menus java.awt Criar barra de menu java.awt Criar item de menu java.awt Criar paineis

CheckboxGroup CheckboxGroup Choice Frame Label List Menu MenuBar MenuItem Panel Choice Frame Label List Menu MenuBar MenuItem Panel

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

66

TextArea TextField Window

TextArea TextField Window

java.awt Criar caixa multlinha de texto java.awt Criar uma caixa de entrada de texto java.awt Criar janela simples

4)Criando Janelas (Frames)


O componente java.awt.Frame uma janela do sistema grfico que possui uma barra de ttulo e bordas, comportando-se como uma janela normal da GUI. Como uma sub-classe do java.awt.Container que pode conter outros componentes sendo est sua finalidade.

Execute 20: Exemplo de criao de Janela usando componente Frame.


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de Janela.java. 3. Digite o seguinte cdigo:

//Janela.java import java.awt.*; // importar o pacote java para utilizar os componentes. public class Janela extends Frame{ //Construtor public Janela() { super(); // constroe a janela a partir da classe Frame setSize(320,240); // define o tamanho da janela setLocation(50,50); } // programa principal static public void main(String args[ ]){ Janela j = new Janela(); // instanciando o objeto da classe janela j.show(); // exibindo a janela na tela } }

4. Compilar e executar a janela mostrada a seguir:


SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

67

Apesar da aparncia esperada, das capacidades de dimensionamento e iconizao, a janela no fechada quando acionamos a opo Fechar. Isto ocorre por no haver mtodos processadores de eventos capazes de receber tal mensagem encerrando a aplicao. Para que uma janela tenha seus eventos processados necessrio implementarmos um processador de eventos especfico. Existem basicamente duas opes para a soluo desta questo: Utilizar a classe java.awt.event.WindowAdapter. Utilizar a interface java.awt.event.WindowListener.

Vejamos o cdigo do exemplo anterior modificado para implementao da interface java.awt.event.WindowListener. Note a adio de uma nova diretiva import para indicarmos o uso do pacote java.awt.event.

Execute 21: Exemplo de criao de Janela usando componente Frame.


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de Janela2.java. 3. Digite o seguinte cdigo:

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

68

//Janela2.java import java.awt.*; // importar o pacote java para utilizar os componentes. import java.awt.event.*; //importar o pacote para processadores de eventos public class Janela2 extends Frame implements WindowListener{ //herana do Frame e interface //WindowListener //Construtor public Janela2() { super(); // constroe a janela a partir da classe Frame setSize(320,240); // define o tamanho da janela setLocation(50,50); addWindowListener(this); //adiciona a lista de eventos para esta classe } // mtodos da interface WindowListener public void windowClosing(WindowEvent e){ // mtodo de evento quando fechar a janela System.exit(0); } public void windowClosed(WindowEvent e){} //mtodo de evento fechar a janela public void windowIconified(WindowEvent e){} // mtodo de evento a janela tornar-se cone public void windowOpened(WindowEvent e){} //mtodo de evento abrir janela public void windowDeiconified(WindowEvent e){} //mtodo de evento a janela deixar de ser cone public void windowActivated(WindowEvent e){} // mtodo de evento quando a janela ativa public void windowDeactivated(WindowEvent e){} //mtodo de evento quando a janela desativada // programa principal static public void main(String args[ ]){ Janela2 j = new Janela2(); // instanciando o objeto da classe janela j.show(); // exibindo a janela na tela } }

4. Compilar e executar, a janela mostrada a seguir:

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

69

Veja que possvel fechar a janela clicando no Fechar.

A outra soluo exige uma implementao de uma classe em separado (um segundo arquivo fonte) para o java.awt.event.WindowAdapter que possui um nico mtodo, windowClosing, responsvel por processar o evento de fechar janela, como mostrado abaixo:

Execute 22: Exemplo de criao de Janela usando componente Frame.


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de FecharJanela.java. 3. Digite o seguinte cdigo:
//FecharJanela.java import java.awt.*; // importar o pacote java para utilizar os componentes. import java.awt.event.*; //importar o pacote para processadores de eventos public class FecharJanela extends WindowAdapter{ //herana da classe WindowAdapter public void windowClosing(WindowEvent e){ // mtodo de evento quando fechar a janela System.exit(0); } }

4. Compilar.

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

70

5. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de Janela3.java. 6. Digite o seguinte cdigo:
//Janela3.java import java.awt.*; // importar o pacote java para utilizar os componentes. public class Janela3 extends Frame{ //Construtor public Janela3() { super(); // constroe a janela a partir da classe Frame setSize(320,240); // define o tamanho da janela setLocation(50,50); //define a localizao da janela nas coordenadas da tela x e y addWindowListener(new FecharJanela()); //adiciona o evento FecharJanela } // programa principal static public void main(String args[ ]){ Janela3 j = new Janela3(); // instanciando o objeto da classe janela j.show(); // exibindo a janela na tela } }

7. Compilar e executar, a janela mostrada a seguir:

Veja, possvel fechar a janela clicando no Fechar.

6) Criando Rtulos (Labels)


O componente java.awt.Label, conhecido tambm como rtulo de texto ou simplesmente rtulo, destinado a exibio de texto dentro de quaisquer componente do tipo container.
SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

71

Os rtulos podem exibir uma nica linha de texto a qual no pode ser modificada nem editada pelo usurio, caracterizando um componente passivo. Mtodos apropriados so fornecidos para que o texto de um rtulo possa ser programaticamente obtido e modificado bem como seu alinhamento.

Execute 23: Exemplo de criao de Label.


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de ExemploLabel.java. 3. Digite o seguinte cdigo:

//ExemploLabel.java import java.awt.*; // importar o pacote java para utilizar os componentes. public class ExemploLabel extends Frame{ //herana da classe Frame private Label l1; private Label l2; public ExemploLabel(){ super(Exemplo de Label); // constroe a janela do construtor Frame; setSize(400,200); //define o tamanho do Frame setLocation(50,50); //define a localizao do frame // instanciao dos objetos label l1 = new Label(Bem vindo a Hytec); l2 = new Label(Java Bsico); // alterao do layout do Frame ou seja da exibio no frame setLayout(new FlowLayout()); add(l1); // adicionando o label 1 no frame add(l2); //adicionando o label 2 no frame } static public void main(String args[]){ ExemploLabel e = new ExemploLabel(); // instancia a classe ExemploLabel e.addWindowListener(new FecharJanela()); e.show(); // mostra a janela do frame } }

4. Compilar e executar. Veja o resultado abaixo:

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

72

1) Criando Botes (Button)


Os botes componentes encapsulados na classe java.awt.Button, so como painis rotulados com um texto que, quando acionados, podem provocar a execuo de alguma rotina ou seqncia de comandos. O acionamento dos botes visualmente indicado atravs de um efeito de afundamento de sua superfcie. O texto associado ao boto, tal como nos rtulos, no pode ser alterado pelo usurio embora isto possa ser realizado atravs da aplicao.

Execute 24: Exemplo de criao de Button.


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de ExemploButton.java. 3. Digite o seguinte cdigo:
//ExemploButton.java import java.awt.*; // importar o pacote java para utilizar os componentes. import java.awt.event.*; // importar o pacote para processar os eventos principalmente de cliques //no boto deste exemplo public class ExemploButton extends Frame implements ActionListener{ //classe Frame e interaface //ActionListener private Label l1; private Button b1; private int contar; public ExemploButton(){ super(Exemplo de Button); // constroe a janela do construtor Frame; setSize(280,70); //define o tamanho do Frame setLayout(new FlowLayout()); // instanciao dos objetos SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

73

b1 = new Button(Clique aqui); // instanciando o boto l1 = new Label(Boto no foi usado); b1.addActionListener(this); add(b1); add(l1); contar = 0; } public void actionPerformed(ActionEvent e){ if (e.getSource()==b1){ contar++; l1.setText(Boto j foi usado + contar+ vez(es).); } }

static public void main(String args[]){ ExemploButton e = new ExemploButton(); // instancia a classe ExemploButton e.addWindowListener(new FecharJanela()); e.show(); // mostra a janela do frame } }

4. Compilar e executar. Veja o resultado abaixo:

Depois de clicar no boto uma vez veja o resultado:

Depois de clicar no boto duas vezes veja o resultado:

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

74

2) Criando caixa de entrada de texto (TextField)


A Awt oferece atravs da classe java.awt.TextField o componente caixa de entrada de texto ou apenas caixa de texto. Este componente possibilita a edio e entrada de uma nica linha de texto de forma bastante conveniente para o usurio. Todo e qualquer dado inserido atravs deste componente tratado primariamente como texto, devendo ser convertido explicitamente para outro tipo caso desejado.

Execute 25: Exemplo de criao de Button.


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de ExemploTextField.java. 3. Digite o seguinte cdigo:
//ExemploTextFieldjava import java.awt.*; // importar o pacote java para utilizar os componentes. import java.awt.event.*; // importar o pacote para processar os eventos principalmente de cliques no boto //neste exemplo public class ExemploTextField extends Frame implements ActionListener{ //classe Frame e interaface //ActionListener private TextField tx1,tx2,tx3,tx4; private Button b1; public ExemploTextField(){ super(Exemplo de TextField); // constroe a janela do construtor Frame; setSize(250,150); //define o tamanho do Frame setLayout(new FlowLayout()); // define o layout do frame // instanciao dos objetos tx1 = new TextField(); // instanciando o TextField add(tx1); tx2 = new TextField(,20); // instanciando o TextField add(tx2); tx3 = new TextField(Ola!); // instanciando o TextField add(tx3); tx4 = new TextField(Edite-me,30); // instanciando o TextField add(tx4); tx4.addActionListener(this); b1 = new Button(tx3->tx2); b1.addActionListener(this); add(b1); } public void actionPerformed(ActionEvent e){ if (e.getSource()==b1){ tx2.setText(tx3.getText()); tx3.setText(); } if (e.getSource()==tx4){

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

75

tx3.setText(tx4.getText()); tx4.setText(); } } static public void main(String args[]){ ExemploTextField e = new ExemploTextField(); // instancia a classe ExemploTextField e.addWindowListener(new FecharJanela()); e.show(); // mostra a janela do frame } }

4. Compilar e executar. Veja o resultado abaixo:

3) Criando Painis (Panel)


O componente java.awt.Panel ou Painel um componente tipo container, ou seja um componente que permite dispor outros componente inclusive outros paineis, oferecendo grande versatilidade na disposio de elementos na interface da aplicao. Cada painel pode assumir uma diferente disposio para seus componentes, ampliando as possibilidades de seu uso atravs dos Gerenciadores de Layout.

Execute 26: Exemplo de criao de Panel.


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de ExemploPainel.java. 3. Digite o seguinte cdigo:
//ExemploPainel

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

76

import java.awt.*; // importar o pacote java para utilizar os componentes. import java.awt.event.*; // importar o pacote para processar os eventos principalmente de cliques no boto //neste exemplo public class ExemploPainel extends Frame implements ActionListener{ //classe Frame e interaface //ActionListener private TextField entrada; private Label l1,l2; private Button btlimpar, bttransf, btok; private Panel pacima,pabaixo,pdireita; // construtor public ExemploPainel(){ super(Exemplo de Painel); // constroe a janela do construtor Frame; setSize(400,120); //define o tamanho do Frame // instanciao dos objetos l1 = new Label(Entrada); // instanciando o Label l1 l2 = new Label(Sada); // instanciando o Label l2 entrada = new TextField(20); // instanciando o TextField btlimpar = new Button(Limpar); btlimpar.addActionListener(this); bttransf = new Button(Transferir); bttransf.addActionListener(this); btok = new Button(OK); btok.addActionListener(this); pacima = new Panel(new FlowLayout(FlowLayout.LEFT)); // gerenciador FlowLayout pabaixo= new Panel(new GridLayout(1,2)); // gerenciador GridLayout pdireita = new Panel(); //adio dos componentes pacima.add(l1); //adicionando o Label l1 ao Painel pacima pacima.add(entrada); //adicionando o TextField entrada ao Painel pacima add(pacima, BorderLayout.CENTER); //adicionando o Painel pacima ao frame no centro pdireita.add(l2); //adicionando o Label l2 add(pdireita,BorderLayout.EAST); //adicionando o Painel pdireita ao frame a direita pabaixo.add(btlimpar); //adicionando o boto btlimpar ao Painel pabaixo pabaixo.add(bttransf); //adicionando o boto bttransf ao Painel pabaixo pabaixo.add(btok); //adicionando o boto btok ao Painel pabaixo add(pabaixo,BorderLayout.SOUTH); // adicionando o Painel pabaixo ao frame abaixo. } // Interface ActionListener public void actionPerformed(ActionEvent e){ if (e.getSource()==btlimpar){ entrada.setText(); } else if (e.getSource()==bttransf) { l2.setText(entrada.getText()); }

else { //fechar a aplicao System.exit(0); } } public static void main(String a[]){ ExemploPainel p = new ExemploPainel();

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

77

p.addWindowListener(new FecharJanela()); p.show(); } }

4. Compilar e executar. Veja o resultado abaixo:

4) Criando caixa de entrada multilinha ou memo (TextArea)


Este componente, conhecido como caixa de entrada multilinha ou memo, permite a criao de uma rea para entrada e edio de texto contendo mltiplas linhas de forma a poder conter at mesmo mais texto do que possa ser exibido. Pertence a classe java.awt.TextArea.

Execute 27: Exemplo de criao de TextArea.


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de ExemploTextArea.java. 3. Digite o seguinte cdigo:
//ExemploTextArea.java import java.awt.*; // importa o pacote java para utilizar os componentes. import java.awt.event.*; // importa o pacote para processar os eventos principalmente de cliques //no boto deste exemplo public class ExemploTextArea extends Frame implements ActionListener{ //classe Frame e //interface ActionListener private TextArea taeditor; private Button btestado; private TextField txentrada,txposicao; // construtor SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

78

public ExemploTextArea(){ super(Exemplo de TextArea); // constroe a janela do construtor Frame; setSize(300,300); //define o tamanho do Frame // instanciao dos objetos txentrada = new TextField(20); txentrada.addActionListener(this); txposicao = new TextField(3); txposicao.addActionListener(this); btestado = new Button(on/off); btestado.addActionListener(this); taeditor = new TextArea(); // criar painel Panel p = new Panel(); p.setLayout(new FlowLayout()); //usando o gerenciador de layout FlowLayout //adicionando os componentes no painel p.add(txentrada); p.add(txposicao); p.add(btestado); //adiciona painel no topo do frame add(p, BorderLayout.NORTH); //adiciona o TextArea no centro do frame add(taeditor, BorderLayout.CENTER); } // Interface ActionListener public void actionPerformed(ActionEvent e){ if (e.getSource()==btestado){ taeditor.setEditable(!taeditor.isEditable()); } else if (e.getSource()==txentrada) { taeditor.append(txentrada.getText()); txentrada.setText(); } else if (e.getSource()==txposicao){ //insere a entrada do texto na posicao indicada taeditor.insert(txentrada.getText(),Integer.parseInt(txposicao.getText())); txentrada.setText(); txposicao.setText(); } } public static void main(String a[]){ ExemploTextArea t = new ExemploTextArea(); t.addWindowListener(new FecharJanela()); t.show(); } }

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

79

4. Compilar e executar. Veja o resultado abaixo:

11) Criando caixa de lista (List)


O Componente java.awt.List, conhecido como caixa de lista, permite a exibio de uma lista de itens com as seguintes caractersticas: os itens no podem ser editados diretamente pelo usurio; uma barra de rolagem vertical exibida automaticamente quando a caixa de lista contm mais itens do que pode exibir; pode ser configurado para permitir a seleo de um nico item ou mltiplos itens e quando se clica num item no selecionado este passa a estar selecionado e viceversa.

Este componente basicamente produz dois tipos de eventos: java.awt.event.ItemEvent quando ocorre a seleo de um item e java.awt.event.ActionEvent quando o usurio d um duplo clique sobre um item e pela lista. Estes eventos requerem tratamento por listeners diferentes respectivamente como as interfaces: java.awt.event.ItemListener e java.awt.event.ActionListener.

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

80

Execute 28: Exemplo de criao de List.


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de ExemploList.java. 3. Digite o cdigo abaixo:
//ExemploList.java import java.awt.*; import java.awt.event.*; public class ExemploList extends Frame implements ItemListener, ActionListener { // atributos private Label lbexibicao; // variveis do label private List cxlista; // varivel do List private TextField txentrada; // varivel do TextField private Panel pnorte,pcentro,psul; // variveis dos paineis // Construtor public ExemploList(){ super("Exemplo de List"); setSize(200,300); //instancia dos objetos lbexibicao = new Label(" sem seleo"); lbexibicao.setBackground(SystemColor.control); // cor de fundo igual painel cxlista = new List(6); cxlista.addItemListener(this); cxlista.addActionListener(this); txentrada = new TextField(20); txentrada.addActionListener(this); // adicionando os objetos no Frame add(lbexibicao,BorderLayout.NORTH); // adicionando o label no norte add(cxlista,BorderLayout.CENTER); // adicionando o list central add(txentrada,BorderLayout.SOUTH); // adicionando o textfield no sul } // mtodos da interface ItemListener public void itemStateChanged(ItemEvent e){ if (e.getSource()==cxlista){ // testa se existe seleo if (cxlista.getSelectedIndex()>-1) //existe item na lista lbexibicao.setText("Seleo: "+cxlista.getSelectedItem()); else lbexibicao.setText(" sem seleo"); SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

81

} } // mtodos da interface ActionListener public void actionPerformed(ActionEvent e){ if (e.getSource()==txentrada){ // inclui entrada na lista cxlista.add(txentrada.getText()); txentrada.setText(""); } else if (e.getSource()==cxlista){ //remove o item indicado txentrada.setText(cxlista.getSelectedItem()); cxlista.remove(cxlista.getSelectedIndex()); lbexibicao.setText(" sem seleo"); } } // mtodo main public static void main (String a[]){ ExemploList l = new ExemploList(); l.addWindowListener(new FecharJanela()); l.show(); } }

4. Compilar e executar. Veja a resultado abaixo:

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

82

12) Criando caixa de seleo (Choice)


O componente java.awt.Choice implementa uma lista de itens onde somente o item selecionado exibido. A lista exibida como um menu suspenso pode ser vista atravs do acionamento de um boto integrado ao componente, por isto conhecido tambm como caixa de seleo ou combobox.

Execute 29: Exemplo de criao de Choice.


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de ExemploChoice.java. 3. Digite o cdigo abaixo:
//ExemploChoice.java import java.awt.*; import java.awt.event.*; public class ExemploChoice extends Frame implements ItemListener{ // atributos private Label lbexibicao; // varivel do componente label private Choice cxselecao; // varivel do componente choice // Construtor public ExemploChoice(){ super("Exemplo de Choice"); SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

83

setSize(200,200); // instancia do objetos lbexibicao = new Label(" sem seleo "); lbexibicao.setBackground(SystemColor.control); cxselecao = new Choice(); cxselecao.add("Branco"); cxselecao.add("Vermelho"); cxselecao.add("Azul"); cxselecao.add("Verde"); cxselecao.addItemListener(this); // adicionando os objetos no frame add(lbexibicao,BorderLayout.NORTH); add(cxselecao,BorderLayout.CENTER); } // mtodos da interface ItemListener public void itemStateChanged(ItemEvent e){ if (e.getSource()==cxselecao){ // testa se existe a selecao if (cxselecao.getSelectedIndex()>-1){ // exibe o item selecionado lbexibicao.setText(cxselecao.getSelectedItem()); switch (cxselecao.getSelectedIndex()){ case 0: setBackground(Color.white);break; case 1: setBackground(Color.red);break; case 2: setBackground(Color.blue);break; case 3: setBackground(Color.green);break; } repaint(); // redesenha a janel com as cores selecionadas } else // limpa a exibicao lbexibicao.setText(" sem seleo"); } } // metodo main public static void main (String a[]){ ExemploChoice c = new ExemploChoice(); c.addWindowListener(new FecharJanela()); c.show(); } }

4. Compilar e executar. Veja o resultado abaixo:

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

84

13) Criando caixa de opo (Checkbox):


A caixa de opo, como tambm conhecido o componente java.awt.Checkbox, um componente utilizado para representar graficamente uma opo que pode ser ligada ou desligada. geralmente utilizada para exibir um grupo de opes as quais podem ser selecionadas independentemente pelo usurio, ou seja, permitem mltiplas selees.

Execute 30: Exemplo de criao de Checkbox.


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de ExemploCheckbox.java. 3. Digite o cdigo abaixo:
//ExemploCheckbox.java import java.awt.*; import java.awt.event.*; public class ExemploCheckbox extends Frame implements ActionListener, ItemListener{ private Checkbox chnegrito,chitalico,chserif; private TextField txexibicao, txtam; // mtodo main public static void main(String a[]){ ExemploCheckbox c = new ExemploCheckbox(); c.addWindowListener(new FecharJanela()); c.show(); }

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

85

// construtor public ExemploCheckbox(){ super("Exemplo de Checkbox"); setSize(300,300); // instanciao dos componentes chnegrito = new Checkbox("Negrito",false); chnegrito.addItemListener(this); chitalico = new Checkbox("Itlico",false); chitalico.addItemListener(this); chserif = new Checkbox("Serifado",false); chserif.addItemListener(this); txexibicao = new TextField("Experimente o checkbox"); txtam = new TextField("12"); txtam.addActionListener(this); // adicionando os componentes no frame add(txexibicao,BorderLayout.CENTER); Panel p = new Panel(); p.setLayout(new GridLayout(1,4)); p.setBackground(SystemColor.control); p.add(chnegrito); p.add(chitalico); p.add(chserif); p.add(txtam); add(p, BorderLayout.SOUTH); } // interface ActionListener public void actionPerformed(ActionEvent e){ changeFont(); } // interface ItemListener public void itemStateChanged(ItemEvent e){ changeFont(); } // metodo changeFont() private void changeFont(){ //testa estado de cada checkbox int negr = (chnegrito.getState() ? Font.BOLD:Font.PLAIN); int ital = (chitalico.getState() ? Font.ITALIC:Font.PLAIN); int size = Integer.parseInt(txtam.getText()); if (chserif.getState()) txexibicao.setFont(new Font("Serif",negr+ital,size)); else txexibicao.setFont(new Font("SanSerif",negr+ital,size)); } }

4. Compilar e executar. Veja o resultado:

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

86

14) Criando Grupo de CheckBox (CheckboxGroup)


Como vimos, quando so adicionados vrios componentes java.awt.Checkbox a uma aplicao, possvel selecionar um, vrios ou mesmo todos os componentes, caracterizando uma situao de mltipla escolha, o que nem sempre apropriado. Quando desejamos que seja feita uma nica escolha dentre um conjunto, necessitamos de um componente com outro componente. A awt, ao invs de oferecer um segundo componente permite que vrios componentes java.awt.Checkbox seja associado atravs de um outro denominado java.awt.CheckBoxGroup no um componente visual e apenas proporciona uma associao de vrios Checkbox de forma que se comportem como componentes conhecidos como botes de opes. Os botes associados garantem que apenas um esteja selecionado em qualquer instante, assim quando um deles selecionado, qualquer outro que estivesse selecionado de-selecionado, garantindo uma escolha nica dentre o conjunto de opes apresentadas ao usurio.

Execute 31: Exemplo de criao de CheckboxGroup.


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de ExemploCheckBoxGroup.java. 3. Digite o cdigo abaixo:
//ExemploCheckBoxGroup.java

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

87

import java.awt.*; import java.awt.event.*; public class ExemploCheckBoxGroup extends Frame implements ItemListener{ private Checkbox chbranco,chvermelho,chazul,chverde; private CheckboxGroup cgcores; // metodo main public static void main(String a[]){ ExemploCheckBoxGroup c = new ExemploCheckBoxGroup(); c.addWindowListener(new FecharJanela()); c.show(); } // construtor public ExemploCheckBoxGroup(){ super("Exemplo de CheckBoxGroup"); setSize(250,200); // instanciao dos componentes cgcores = new CheckboxGroup(); chbranco = new Checkbox("Branco",cgcores,true); chvermelho = new Checkbox("Vermelho",cgcores,false); chazul = new Checkbox("Azul",cgcores,false); chverde = new Checkbox("Verde",cgcores,false); chbranco.addItemListener(this); chvermelho.addItemListener(this); chazul.addItemListener(this); chverde.addItemListener(this); // adicionando componentes ao frame Panel p = new Panel(); p.setBackground(SystemColor.control); p.setLayout(new GridLayout(4,1)); p.add(chbranco); p.add(chvermelho); p.add(chazul); p.add(chverde); add(p,BorderLayout.WEST); } // interface ItemListener public void itemStateChanged(ItemEvent e){ if (e.getSource()==chbranco){ setBackground(Color.white); } else if (e.getSource()==chvermelho) setBackground(Color.red); } else if (e.getSource()==chazul){ setBackground(Color.blue); } else if (e.getSource()==chverde){ setBackground(Color.green); } repaint(); // redesenhar a tela SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

88

} }

4. Compilar e executar. Veja o resultado abaixo:

15) Criando Menus


Como esperado, a AWT oferece suporte bastante completo para criao de aplicaes utilizando barras de menus, menus suspensos e menus independentes atravs de um conjunto de classes resumidamente descrito a seguir: Classe MenuComponent Descrio Classe abstrata que define o comportamento e estrutura bsica dos elementos componentes de menus. Classe que define uma entrada simples de menu Classe que define uma barra de menus para uma aplicao Classe que define um menu suspenso Classe que define um atalho para um item de menu Classe que define uma entrada de menu tipo opes
Tel.: (61) 3225-7784 Braslia - DF

MenuItem

MenuBar Menu MenuShortCut CheckboxMenuItem

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

89

PopupMenu

Classe que define um menu independente

Adicionar uma barra de menus contendo menus e itens de menus bastante simples no Java. Basta seguir intuitivamente a estrutura visual apresentada: Adicionar uma barra de menu a janela; Adicionar os menus suspensos a barra de menu; Adicionar os itens de menus desejados ou a cada um dos menus suspensos e Adicionar os listener necessrios para ser possvel que os menus e itens de menus exibam funcionalidades.

Para criarmos a barra de menu fazemos: MenuBar barraMenu = new MenuBar(); Para cada menu suspenso declaramos e instanciamos um objeto Menu, como exemplificado para menus suspensos Arquivo, Editar e Ajuda.
Menu menuArquivo = new Menu(Arquivo); Menu menueditar = new Menu(Editar); Menu menuAjuda = new Menu(Ajuda);

Para cada item de menu de cada menu item, declaramos e instanciamos objetos MenuITem. Abaixo temos o cdigo correspondente para itens de um possvel menu Arquivo.
MenuItem minovo = new MenuItem(Novo); MenuItem miabrir = new MenuItem(Abrir); MenuItem misalvar = new MenuItem(Salvar); MenuItem misair = new MenuItem(Sair);

Agora adicionamos os itens de menu acima ao menu suspenso Arquivo. Note o uso do mtodo addSeparator para adicionar-se separadores aos itens de um menu suspenso:
MenuArquivo.add(minovo); MenuArquivo.add(miabrir); MenuArquivo.add(misalvar); MenuArquivo.add(misair);

O mesmo deve ser feito para os demais menus da aplicao. Finalmente adicionamos os menus suspensos a barra de menu e esta ao frame atravs do mtodo setMenuBar.
BarraMenu.add(menuArquivo); BarraMenu.add(menuEditar); BarraMenu.add(menuAjuda); SetMenuBar(barraMenu);

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

90

Execute 32: Exemplo de criao de Menus.


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de ExemploMenus.java. 3. Digite o cdigo abaixo:
//ExemploMenus.java import java.awt.*; import java.awt.event.*; public class ExemploMenus extends Frame implements ActionListener { MenuBar barraMenu; Menu menuArquivo,menueditar,menuajuda; MenuItem minovo,miabrir,misalvar,misair,mirecortar,micopiar,micolar,miajuda,misobre;

public ExemploMenus(){ super("Exemplo de Menus"); setSize(300,100); setLocation(50,50); // barra de menu barraMenu = new MenuBar(); // menus suspensos menuArquivo = new Menu("Arquivo"); menueditar = new Menu("Editar"); menuajuda = new Menu("Ajuda"); // itens do menu arquivo minovo = new MenuItem("Novo"); miabrir = new MenuItem("Abrir"); misalvar = new MenuItem("Salvar"); misair = new MenuItem("Sair"); misair.addActionListener(this); // itens do menu editar mirecortar = new MenuItem("Recortar"); micopiar = new MenuItem("Copiar"); micolar = new MenuItem("Colar"); // itens do menu ajuda miajuda = new MenuItem("Ajuda"); misobre = new MenuItem("Sobre"); // adicionando os itens do menu arquivo menuArquivo.add(minovo); SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

91

menuArquivo.add(miabrir); menuArquivo.add(misalvar); menuArquivo.add(misair); // adicionando os itens do menu editar menueditar.add(mirecortar); menueditar.add(micopiar); menueditar.add(micolar); // adicionando os itens do menu ajuda menuajuda.add(miajuda); menuajuda.add(misobre); // adicionando os menus suspensos a barra de menu barraMenu.add(menuArquivo); barraMenu.add(menueditar); barraMenu.add(menuajuda); // adicionando a barra de menu ao frame setMenuBar(barraMenu); } public void actionPerformed(ActionEvent e){ if (e.getSource()==misair){ // implementao do menu sair System.exit(0); } } public static void main(String a[]){ ExemploMenus m = new ExemploMenus(); m.addWindowListener(new FecharJanela()); m.show(); } }

4. Compilar e executar. Veja o resultado abaixo:

clique no menu arquivo escolha o menu sair.

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

92

Exerccios de Reviso do capitulo VI


1) Desenvolva uma aplicao com a seguinte tela:

Funcionalidades: boto Limpar: quando clicar neste boto todas as caixas de textos e label imc sero limpos. boto Calcular IMC: quando clicar neste boto dever ser mostrado no label imc o clculo do imc (ndice de massa corprea ). O imc calculado da seguinte forma: peso dividido pela altura (metros) ao quadrado. A tabela abaixo define a situao do IMC: IMC abaixo de 20 20 at 25 acima de 25 at 30 acima de 30 at 35 acima de 35 Situao abaixo do peso normal peso normal sobrepeso obesidade obesidade mrbida

No label imc dever ser apresentado o valor do imc e a situao. Veja o exemplo:

2) Desenvolva uma aplicao com a seguinte tela:


SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

93

Funcionalidades: Boto +: quando clicar nesse boto ser efetuado a soma entre os dois nmeros e mostrar o resultado no label resultado. Boto /: quando clicar nesse boto ser efetuado a diviso entre os dois nmeros e mostrar o resultado no label resultado. Boto *: quando clicar nesse boto ser efetuado a multiplicao entre os dois nmeros e mostrar o resultado no label resultado. Boto -: quando clicar nesse boto ser efetuado a subtrao entre os dois nmeros. Boto Limpar: quando clicar nesse boto limpar os TextFields e o label resultado.

3) Desenvolva uma aplicao com a seguinte tela:

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

94

4) Desenvolva uma aplicao com a seguinte tela:

A tela mostrada acima posui: Uma barra de menu; Dois menus: Exemplos e Sair. O menu Exemplos possui 3 itens: Calculo IMC, Calculadora e Exemplos de Vrios Objetos O menu Sair possui 2 itens: Sim e No.

Funcionalidades: Quando clicar no item de menu Calculo IMC ser executado a aplicao do exerccio 1 (Calculo IMC). Quando clicar no item de menu Calculadora ser executado a aplicao do exerccio 2 (Calculadora). Quando clicar no item de menu Exemplos de Vrios Objetos ser executado a aplicao do exerccio 3 (Exemplos de Vrios Objetos). Quando clicar no item de menu sim: dever sair da aplicao.
Tel.: (61) 3225-7784 Braslia - DF

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

95

Captulo VII Escrevendo applets Java


1) A diferena entre applets e aplicativos
A diferena entre applets e aplicativos Java est no modo como eles so executados. Os aplicativos so executados utilizando um interpretador Java para carregar o arquivo de classe principal do aplicativo. Normalmente, isso feito a partir de um prompt de linha de comando que usa a ferramenta java do SDK. Por outro lado, os applets so executados em qualquer navegador que oferece suporte para a linguagem Java. Para que um applet seja executado, ele deve ser includo em uma pgina da Web usando tags HTML da mesma maneira que imagens e outros elementos so includos. Quando um usurio com um navegador compatvel com Java carrega uma pgina da Web que inclui um applet, esse navegador faz o download do applet a partir de um servidor Web e o executa no sistema do prprio usurio da Web. No necessrio um interpretador Java separado j existe um incorporado ao navegador. Assim como um aplicativo, um applet Java inclui um arquivo de classe e todas as outras classes auxiliares necessrias para execut-lo. A biblioteca de classe Java padro includa automaticamente. Como os applets Java so executados dentro de um navegador Java, uma parte do trabalho de criao de uma interface com o usurio j foi realizada para o programador. H uma janela na qual o applet pode ser executado, um lugar para apresentar elementos grficos e receber informaes e a interface do navegador.

2) Criando applets
A maior parte dos programas Java que voc criou at agora era formada de aplicativos (programas simples com o mtodo main()) que utilizado para criar objetos, configurar variveis de instncia e chamar outros mtodos. As applets no possuem um mtodo main() que seja chamado automaticamente para inciar o programa. Em vez disso, existem vrios mtodos que so chamados em diferentes pontos na execuo de um applet. Todos os applets so subclasses da classe java.applet. Todos os applets devem ser declarados public, pois a classe applet uma classe pblica.

3) Principais atividades do applet


Em vez de um mtodo main(), os applets possuem mtodos que so chamados, quando ocorrem eventos especficos em sua execuo.

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

96

Um exemplo desses mtodos paint(), que chamado toda vez que a janela do applet precisa ser apresentada ou reapresentada. A seguir so descritos cinco dos mtodos mais importante na execuo de um applet: incializao, partida, interrupo, destruio e pintura.

3.1) Incializao
A inicializao ocorre quando o applet carregado. Ela pode incluir a criao dos objetos de que o applet precisa, a configurao do estado inicial, o carregamento de imagens ou fontes ou o ajuste de parmetros. Para fornecer comportamento para inicializao de um applet, voc anula o mtodo init() do seguinte modo: public void init(){ //codigo aqui } Algo til a fazer ao inicializar um applet configurar a cor de sua janela de plano de fundo. As cores so representadas na linguagem Java pela classe Color, parte do pacote java.awt.Chame setBackground(Color) em um applet para aplicar a cor especfica para o plano de fundo na janela. public void init(){ setBackground(Color.black); }

3.2) Partida
A partida de um applet realizada depois que ele inicializado. Ela tambm pode ocorrer se o applet tiver sido interrompido anteriormente. Por exemplo, um applet interrompido se o usurio do navegador segue um vnculo para uma pgina diferente e reiniciado quando o usurio retorna pgina que contm o applet. A partida pode ocorrer vrias vezes durante o ciclo de vida de um applet, mas a inicializao s ocorre uma vez. Para fornecer comportamento de incio para seu applet, anule o mtodo start() do seguinte modo: public void start(){ // cdigo aqui }
SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

97

A funcionalidade que voc coloca no mtodo start() pode incluir o incio de um thread (aplicao em execuo) para controlar o applet, o envio de mensagens apropriadas para objetos auxiliares ou a solicitao para o applet comear a ser executado de alguma maneira.

3.3) Interrupo
A interrupo e a partida andam lado a lado. A interrupo ocorre quando o usurio sai da pgina que contm o applet que est sendo executado ou quando um applet interrompe sua execuo chamando stop(). public void stop() { // cdigo aqui }

3.4) Destruio
A destruio soa mais escabrosa do que realmente . O mtodo destroy() permite que o applet faa uma limpeza pouco antes de ser liberado da memria ou de sair do navegador. Voc pode usar esse mtodo para acabar com todos os threads que estiverem em execuo ou para liberar todos os outros objetos que estiverem sendo executados. Geralmente, voc no desejar anular destroy(), a no ser que existam recursos especficos que precisem ser liberados, como os threads que o applet criou. Para fornecer comportamento de limpeza ao seu applet, anule o mtodo destroy(), do seguinte modo: public void destroy(){ // cdigo aqui }

3.5) Pintura
atravs da pintura que um applet apresenta algo na tela, seja texto, uma linha, um fundo colorido ou uma imagem. Ela pode ocorrer centenas de vezes durante o ciclo de vida de um applet: uma vez depois que o applet inicializado; outra vez se a janela do navegador ficar atrs de outra janela na tela; mais uma vez se a janela do navegador for
SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

98

movida para uma posio diferente na tela etc. Para apresentar algo, voc deve anular o mtodo paint() de sua subclasse Applet. Esse mtodo tem a seguinte aparncia: public void paint(Graphics g){ // cdigo aqui }

Execute 33: Exemplo de criao de applets.


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de ExemploApplet.java. 3. Digite o codigo abaixo: // ExemploApplet.java import java.applet.Applet; // pacote da classe Applet import java.awt.Graphics; // pacote da classe Graphics da awt public class ExemploApplet extends Applet { private int inicio; private int partida; private int pintura; private int interrompe; public void init(){ inicio++; } public void start(){ partida++; } public void paint(Graphics g){ pintura++; // desenha os textos nas coordenadas g.drawString("Inicio: "+inicio,5,15); g.drawString("Partida:"+partida,5,30); g.drawString("Pintura:"+pintura,5,45); g.drawString("Interrompe:"+interrompe,5,60); } public void stop(){ interrompe++;
SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

99

} }

4. Compilar. 5. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de testaapplet.html <html> <body> <applet code=ExemploApplet.class width=275 height=80> </applet> </body> </html> 6. Abra o internet explorer. Acesse o menu arquivo, opo abrir localize o arquivo testaapplet.html d duplo clique. Veja o resultado na tela a seguir: A seguinte tela ser exibida:

Aumente o tamanho da tela. Veja o resultado.

Observe que s a varivel pintura que mudou o seu valor Acesse o menu applet e clique na opo stop a tela a seguir ser exibida

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

100

Acesse o menu Applet, clique na opo restart. Observe varivel interrompe mudou o valor, a varivel inicio mudou valor, a varivel pintura mudou o valor.

Execute 34: Exemplo de criao de applets.


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de ExemploApplet2.java. 3. Digite o codigo abaixo: import java.awt.*; import java.applet.*; import java.awt.event.*; public class ExemploApplet2 extends Applet implements ActionListener { private Button b1, b2, b3, b4; public void init() { b1 = new Button("Azul"); b2 = new Button("Verde"); b3 = new Button("Branco"); b4 = new Button("Preto");
SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

101

add(b1); add(b2); add(b3); add(b4); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener( this); b4. addActionListener( this); } public void actionPerformed(ActionEvent evt) { Object source = evt.getSource(); if (source == b1) setBackground(Color.blue); if (source == b2) setBackground(Color.green); if (source == b3) setBackground(Color.white); if (source == b4) setBackground(Color.black); } } 4. Compilar 5. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de testaapplet2.html <html> <body>

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

102

<applet code="ExemploApplet2.class" width=200 height=200></applet> </body> </html> 6. Abra o internet explorer. Acesse o menu arquivo, opo abrir localize o arquivo testaapplet2.html d duplo clique. Veja o resultado na tela a seguir:

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

103

Execute 35: Exemplo de criao de applets.


1. Abra o Jcreator. 2. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de ExemploApplet3.java. 3. Digite o codigo abaixo: import java.awt.*; import java.awt.event.*; import java.applet.*; public class ExemploApplet3 extends Applet implements ActionListener { private Label L1; private Button b1; private int contar;

public void init(){ b1=new Button("Clique aqui"); L1=new Label("Boto no foi usado b1.addActionListener(this); add(b1); add(L1); contar=0; }

");

public void actionPerformed(ActionEvent e){ if(e.getSource()==b1){ contar++; L1.setText("Boto j foi usado "+contar+" vez(es)."); } } }

4. Compilar 5. Acesse o menu File, opo new, opo file. Coloque o nome do arquivo de testaapplet3.html <html> <body> <applet code="ExemploApplet3.class" width=400 height=100></applet> </body> </html>
SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530 Tel.: (61) 3225-7784 Braslia - DF

104

6. Abra o internet explorer. Acesse o menu arquivo, opo abrir, localize o arquivo testaapple3.html d um duplo clique. Veja o resultado na tela a seguir:

Exerccios de Reviso do capitulo VII


1. Desenvolva um applet para o exemplo de Label do captulo VI: ExemploLabel.java 2. Desenvolva um applet ExemploTextField.java para o exemplo de TextField do captulo VI:

3. Desenvolva um applet para o exemplo de Panel do captulo VI: ExemploPainel.java 4. Desenvolva um applet ExemploTextArea.java para o exemplo de TextArea do captulo VI:

SCRS 502 Bl. C Ent. 22 W2 CEP - 70330-530

Tel.: (61) 3225-7784 Braslia - DF

Вам также может понравиться