0% acharam este documento útil (0 voto)
39 visualizações55 páginas

Introdução ao Java para Iniciantes

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
39 visualizações55 páginas

Introdução ao Java para Iniciantes

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 55

SEMINFO

/DERUDWyULRGH
,QWURGXomRD/LQJXDJHP-DYD
Apresentação do Laboratório :

• Parte I: O Ambiente de Desenvolvimento Java


Histórico, Características
Ambiente JDK 1.2
Recursos Gerais do Java
Estrutura de Aplicações e Applets
• Parte II: Programação Orientada Objetos em Java
Por que usar Orientação a Objetos
Conceitos de Orientação a Objetos
Orientação a Objetos em Java
Classes Básicas Importantes

Seminfo 2000 - Marcela Santana Batalha

SEMINFO

/DERUDWyULRGH
,QWURGXomRD/LQJXDJHP-DYD
• Parte III: Tratamento de Exceções em Java
O que é uma exceção
Classes de Exceções
Exceções mais comuns em Java
• Parte IV: Componentes para Interfaces Gráficas (JFC)
Criação de interface de usuário com Swing
Gerenciadores de Layout
Tratamento de eventos de usuário com Swing
• Parte V: Applets
O que são applets
Principais atividades de uma applet
Incluindo um applet em uma página HTML

Seminfo 2000 - Marcela Santana Batalha

1
SEMINFO

Ítem I

O Ambiente de
Desenvolvimento Java

SEMINFO

O Ambiente de Desenvolvimento
Java

❂ Histórico
hEm 1991 um grupo da Sun Microsystems trabalhava para
desenvolver software a fim de controlar dispositivos
eletrônicos para o consumidor.
h O objetivo era construir uma linguagem que pudesse
fazer funcionar os utensílios domésticos inteligentes.
h Desenvolveram um protótipo de dispositivo chamado de
Star7 que se comunicava com outros iguais. O So do Star7
era em C++.
h No entanto, James Gosling aborreceu-se com a maneira
que o C++ estava desempenhando a tarefa e resolveu
escrever uma nova linguagem para manipular o Star7.
h Inicialmente foi denominada Oak.

2
SEMINFO

O Ambiente de Desenvolvimento
Java

❂ Características do Java

1) Simples
h Como foi projetada para utensílios domésticos a
linguagem Java tinha de ser pequena, eficiente e facilmente
portável para uma ampla gama de dispositivos. Para isso
ela deveria ser simples.
h Aproveita conceitos e sintaxe do C++ mas não trabalha
com os conceitos abaixo:
(ponteiros e aritimética de ponteiros, herança múltipla.
h Gerenciamento de memória é bem mais simples.

SEMINFO

O Ambiente de Desenvolvimento
Java

h Poderosa biblioteca de classes com recursos como


Interface grática, IO, comunicação através da rede, threads
etc.

2) Orientada a Objetos
h Diferente do C++, uma combinação de objetos e funções,
cada elemento do Java é um objeto.
h Classes, objetos, mensagens, variáveis de instâncias
etc.
h Construção de novas classes a partir de outras classes
existentes - reutilizável.
h Extensibilidade

3
SEMINFO

O Ambiente de Desenvolvimento
Java

3) Interpretada
h O compilador Java gera bytecodes que são
interpretados durante a execução.
h Os bytecodes gerados se baseiam na especificação de
uma Máquina Virtual Java que não é uma plataforma
específica mas uma máquina implementada em software.
h A máquina virtual é semelhante a uma CPU mas por ser
escrita em software, ela é portável.
[Link] Compilador

[Link]

Interpretador

SEMINFO

O Ambiente de Desenvolvimento
Java

4) Portável e Independente de Plataforma


h O esquema de codificação básica do Java é neutro em
relação à arquitetura

4
SEMINFO

O Ambiente de Desenvolvimento
Java

5) Segura
h O compilador Java impede a geração de bytecodes que
não seguem completamente as regras de segurança
extensivas.
h Existe um verificador de bytecodes que inspeciona os
bytecodes à medida que eles são carregados no sistema.
h Depois de verificado, o código precisa ser carregado em
um namespace runtime. Isso é feito por um módulo
chamado Class Loader. Diferença de classes da rede para
classes locais.
h A camada final realiza testes no código a medida que ele
está sendo executado. Assegura que o código não irá
violar nenhuma das restrições de segurança. Este módulo
é denominado Security Manager.

SEMINFO

O Ambiente de Desenvolvimento
Java

Tempo de Compilação Tempo de execução

Carregador
Código Compilador Interpretador
de classes
fonte

Código
de Bytes Classes
Runtime
Verificador
de
Código de Security
Bytes Manager

5
SEMINFO

O Ambiente de Desenvolvimento
Java

6) Permite multithread
h Fluxos de processamento independentes
h Light Weight Processes

7) Gerenciamento de Memória
h Garbage Collection

8) Distribuição e Interatividade
h Objetos e aplicações espalhados na rede
h Java RMI

SEMINFO

O Ambiente de Desenvolvimento
Java

9) Em forma de Aplicações ou Applets


h Aplicação - Programa escrito em Java que pode ser
executado em qualquer outra máquina. Dispensa o uso de
um browser.

h Applet - Programa escrito em Java para ser executado


em um browser. Os applets só podem ser executados em
navegadores da Web que estejam equipados com um
interpretador de código de bytes do Java. Viaja pela rede
até a máquina cliente para executar.

6
SEMINFO

O Ambiente de Desenvolvimento
Java

❂ Ambiente JDK1.2
hPara se compilar um programa fonte em java deve-se
utilizar a seguinte linha de comando:
javac [opções] nome_do_programa.java
O javac é o compilador do JDK. O nome do programa fonte
deve ter a extensão .java e o resultado da compilação será
um ou mais arquivos com extensão .class.
h Um Java Bytecode não pode ser executado diretamente.
Para executa-lo deve-se digitar:
java [opções] nome_do_programa [argumentos]
O java é o interpretador do JDK e cabe a ele transformar o
bytecode em código executável pelo hardware

SEMINFO

O Ambiente de Desenvolvimento
Java

❂ Recursos Gerais da Linguagem

Tabela de Tipos de Dados Primitivos

Tipos de Dados Tamanho


byte 8 bits
short 16 bits
int 32 bits
long 64 bits
float ponto flutuante 32 bits
double ponto flutuante 64 bits
char Unicode de 16 bits

7
SEMINFO

O Ambiente de Desenvolvimento
Java

1) Tipos de Dados Primitivos e Literais


h Tipo primitivo boolean pode representar valores true ou
false. Não é traduzido com um valor numérico.
h String literais são representados como objetos da
classe String. Ex: String nome = “Maria de Fátima”;

2) Variáveis / Comentários
h Declaração : <tipo> <nome_variavel>
Ex: int var1;
int var1=10; declaração e atribuição

SEMINFO

O Ambiente de Desenvolvimento
Java

h Existem três tipos de linha de comentário:


1)
// Linha de comentário
2)
/ * primeira linha do comentário
segunda linha do comentário
terceira linha do comentário * /
3)
/ ** comentários de documentação */

8
SEMINFO

O Ambiente de Desenvolvimento
Java

3) Operadores
3.1) Operadores Aritméticos
+, -, /, %, *
Ex: int a=10, b=20, div;
div = b%a; // div terá valor igual a 0

3.2) Incremento e Decremento


++, --
Ex: int a =10;
a++; // o valor de a será 11

SEMINFO

O Ambiente de Desenvolvimento
Java

3.3) Operadores Relacionais


< maior <= maior ou igual
> menor >= menor ou igual
!= diferente == igual
&& e || ou

4) Condicionais (if / else)


Ex:
boolean resultado = true; int a;
if (resultado){
a=10;
}
else{
a=20;
}

9
SEMINFO

O Ambiente de Desenvolvimento
Java

4) Condicionais (switch)
Ex:
int escolha;
// lê um valor para escolha do teclado
switch(escolha){
case 1:
//comandos
break;
case 2:
//comandos
break;
default:
// entrada inválida
break;
}
Obs: Pode selecionar apenas valores inteiros ou char.

SEMINFO

O Ambiente de Desenvolvimento
Java

5) Loop de Repetição ( for, while e do/while)


Repetição com for
for (init_expr; test_expr; increment_exp) {
declarações;
}

for ( k=0; k < 10; k++){


// faz algo
}

10
SEMINFO

O Ambiente de Desenvolvimento
Java

5) Loop de Repetição ( for, while e do/while)


Repetição com while
while (condição) {
•condição deve retornar
declarações;
um booleano
}

k=0;
while (k < 10){
// faz algo
k++;
}

SEMINFO

O Ambiente de Desenvolvimento
Java

5) Loop de Repetição ( for, while e do/while)


Repetição com do / while
do {
•condição deve retornar
declarações;
um booleano
} while (condição);

k=0;
do {
// faz algo
k++;
} while (k < 10);

11
SEMINFO

O Ambiente de Desenvolvimento
Java

6) Vetores
h Vetores podem ser usados tanto para tipos de dados
primitivos quanto para classes.
h Arrays são criados utilizando-se a palavra reservada
new. É possível criar arrays de arrays.
Exemplos:
// declarando
int [ ] Vet;
Vet = new int[12]; ou int [ ] Vet = new int[12]
// declarando e inicializando
int [ ] Vet2 = { 0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66};

SEMINFO

O Ambiente de Desenvolvimento
Java

7) Matrizes
O Java não admite arrays multidimensionais. Entretanto,
eles podem ser simulados de forma eficaz pelo uso de
arrays de arrays.
Exemplos:

// declarando
int[ ][ ] Mat;
Mat = new int [5] [2]; ou int Mat[ ][ ] = new int [5] [2];

12
SEMINFO

O Ambiente de Desenvolvimento
Java

8) Conversão entre Tipos Numéricos


Sempre que for realizada uma operação numérica (+, -, *, /)
entre dois tipos diferentes será considerado como se os
operadores fossem do mesmo tipo. Para isso, o operador
de maior capacidade dita o tipo a ser considerado.
byte → short → int → long → float → double

h As conversões explicitas devem ser realizadas como


abaixo:
double x = 9.997;
int nx = (int) x; // sintaxe para uma conversão explicita
Resultado: a variável nx terá o valor 9, desprezando a
parte fracionária.

SEMINFO

O Ambiente de Desenvolvimento
Java

8) Entrada e Saída de Dados em Java (modo DOS)


h Saída
Para que possamos mostrar informações no console
padrão (vídeo), é necessário usar o objeto [Link] em
conjunto com o método println().
[Link](“Meu primeiro exemplo executável”);
h Entrada de Dados
O Java só permite a entrada de Strings, desta forma, para
que possamos informar valores numéricos é necessário
fazer uma conversão de String para o tipo numérico
desejado, como podemos ver nos exemplos seguintes.

13
SEMINFO

O Ambiente de Desenvolvimento
Java

Para que seja obtido valores do teclado em um programa


Java é necessário declarar um local de armazenamento.
Para que isso seja realizado é necessário que o programa
tenha a seguinte linha de código:
BufferedReader bf = new BufferedReader(new
inputStreamReader([Link])); // declara um objeto

h Entrada de uma String :


String line;
[Link]("Entre com um valor qualquer do Tipo String");
line = [Link]();
[Link]("O valor String digitado é = " +line);

SEMINFO

O Ambiente de Desenvolvimento
Java

h Entrada de um número int :


String line;
[Link]("Digite um numero inteiro ");
line = [Link]();
int i = [Link](line).intValue(); // converte a String para
// inteiro
[Link]("O numero inteiro digitado é = " + i);

h Entrada de um número float :


String line;
[Link]("Digite um numero float ");
line = [Link]();
float f = [Link](line).floatValue(); // converte a String para
// float
[Link]("O numero float digitado é = " + f);

14
SEMINFO

O Ambiente de Desenvolvimento
Java

h Entrada de um número double :


String line;
[Link]("Digite um numero double ");
line = [Link]();
double d = [Link](line).doubleValue(); // converte a String
// para double
[Link]("O numero inteiro digitado é = " + d);

h Entrada de um número long :


String line;
[Link]("Digite um numero long ");
line = [Link]();
long l = [Link](line).longValue(); // converte a String para
// long
[Link]("O numero float digitado é = " + l);

SEMINFO

O Ambiente de Desenvolvimento
Java
h Entrada de um caracter :
[Link]("Entre com uma letra qualquer");
char letra = (char)[Link]( ); // pega o valor decimal do
// caracter
[Link]("A letra digitada é a letra " + letra);
h package de Entrada e Saída de Dados:

Todo o programa que se utiliza de entrada e saída de dados


deve utilizar o package [Link].*. Ele contêm as classes
responsáveis pelas entradas e saídas de dados e tratamento
de exceções.
Toda a entrada de dados fica sujeita a erros.
A subclasse que trata os erros de entrada e saída é a
IOException, dessa forma é indispensável o seu uso.
import [Link].* throws [Link]

15
SEMINFO

O Ambiente de Desenvolvimento
Java
Exemplo de uma Classe que requer entrada de dados

import [Link].* ;
class NomeDaClasse{
public static void main (String args[ ] ) throws [Link]
{
BufferedReader bf = new BufferedReader(new
inputStreamReader([Link]));
String line;
[Link]("Digite um numero inteiro ");
line = [Link]();
int i = [Link](line).intValue();
[Link]("O numero digitado é = " + i);

}
}

SEMINFO

O Ambiente de Desenvolvimento
Java

8) Palavras Chaves

abstract default if package this


boolean do implements private throw
break double import protected throws
byte else instanceof public transient
case extends int return true
catch false interface short try
char final long static void
class finally native super while
const float new switch
continue for null syncronyzed

* Nenhuma destas palavras podem ser usadas como identificadores

16
SEMINFO

O Ambiente de Desenvolvimento
Java

❂ Estrutura de Aplicações X Applets


h Embora todos os dois são compilados de maneira
similar, eles são criados de modo diferente.

1) Aplicações Independentes
h São aplicativos do Java de uso geral que não
necessitam de um navegador para serem executados.
h São inicializados por uma chamada ao método main(),
da mesma maneira que os programas C.

SEMINFO

O Ambiente de Desenvolvimento
Java

Exemplo
class PrimeiroProgramaJava{
public static void main (String args[ ] ) {
[Link](”Meu 1º programa em Java”);

}
}

2) Applets
h São programas executados como parte de uma página
da Web e exibidos por um navegador capaz de executar
código em Java.
h Para executar um applet é necessário criar um arquivo
HTML.

17
SEMINFO

O Ambiente de Desenvolvimento
Java

Exemplo
import [Link];
class PrimeiraApplet extends Applet{ [Link]
// código
}

Texto de HTML para execução do applet [Link]


<TITLE>Primeira Applet <TITLE>
<APPLET CODE = “FirstApplet” WIDTH=300 HEIGHT=200>
</APPLET>

O programa appletviewer é usado para executar um applet do


Java fora do navegador. Não possui todos os recursos do
navegador mas para desenvolvimento rápido é adequado.

appletviewer [Link]

SEMINFO

Ítem II

Programação
Orientada Objetos em
Java

18
SEMINFO

Programação Orientada Objetos


em Java

❂ Orientação a Objetos é um novo modo de estudar e


codificar problemas com utilização de modelos
fundamentados em conceitos do mundo real. A estrutura
básica é o objeto, que combina a estrutura e o
comportamento dos dados em uma única entidade.
❂ Os modelos baseados em objetos são úteis para
compreensão de problemas, para comunicação com os
usuários das aplicações, para modelar empresa, projetar
programas, etc.

Airport

Antônio Augusto Avião 737 Vasp Carro Corsa Placa


dos Santos Lima Número 1001 ABC 7788

SEMINFO

Programação Orientada Objetos


em Java

❂ Por que Orientação a Objetos?


• Uniformidade do Modelo
• Alto nível de abstração
– Classificação, Herança, Agregação
• Proximidade com a realidade
– Objetos como entidades ativas
– Estrutura e comportamento
– Comunicação entre objetos
• Acesso controlado às informações
• Possibilidade de reutilização de código

19
SEMINFO

Programação Orientada Objetos


em Java

h POO é um tipo de programação que coloca as estruturas


de dados em primeiro lugar, para depois verificar os
algoritmos que operam sobre os dados
h Cada objeto é responsável por executar um conjunto de
tarefas relacionadas.
h Um objeto nunca deve manipular diretamente um dado
interno de outro objeto. Toda comunicação deve ser feito
por troca de mensagens.
h O que interessa é o que os objetos expõem e não como
eles manipulam internamente para prover o serviço.

SEMINFO

Programação Orientada Objetos


em Java

Comportamento Comportamento
Pensar Andar
Falar Parar
Dormir Abastecer
Airport

Estrutura Estrutura
Olho Acentos
Ouvido Volante
Braço
Pessoa Meios_De_Transportes

{ avião, trem e carro } Classe : Meios_De_Transportes


Objeto : Carro Corsa Placa ABC 7788

{ homem, mulher } Classe : Pessoa


Objeto : Antônio Augusto dos Santos Lima

20
SEMINFO

Programação Orientada Objetos


em Java

Comunicação entre os objetos das classes acontece através de troca de


mensagens

Meios_De_Transportes Pessoa

Trem Avião Carro Homem Mulher


Ande
Voe

SEMINFO

Programação Orientada Objetos


em Java

❂ Conceitos básicos de Orientação a Objetos

1) Classe
h É uma entidade abstrata que serve para modelar objetos
e seus comportamentos. Especificação genérica para um
número arbitrário de objetos.
h Pode ser definida ainda com “Abstrações sobre objetos
de estrutura e comportamento comum”.
h Fornecem modelos para a especificação do estado e
comportamento de um objeto durante a execução.
h Uma classe é composta por nome, atributos (variáveis)
e métodos.

21
SEMINFO

Programação Orientada Objetos


em Java
Classe - Estrutura Básica de um Classe Java
class Pessoa{ Atributos
String nomePessoa, profissaoPessoa; da classe
int idadePessoa;
publi void recebeNomeIdade ( int idade, String nome){
nomePessoa = nome;
idadePessoa = idade;
}
public String retornaNome( ){
return nomePessoa;
} Métodos ou
public int retornaIdade( ){ comportamento
return idadePessoa;
}
public int retornaAnoNascimento( ){
int anoAtual = 2000;
return (anoAtual - idadePessoa);
}
}

SEMINFO

Programação Orientada Objetos


em Java

2) Objeto
Objetos são entidades modeladas por uma classe.
Podemos dizer que um objeto é uma ocorrência, uma
instância, de uma classe. Um objeto pode ser representado
por um par Estrutura/Comportamento. Cada objeto é
diferenciado de outros pela sua identidade e não pelos
valores de seus atributos (estado interno).
Como instanciar um objeto da Classe Pessoa :
Pessoa objetoPessoa = new Pessoa();

Todos os objetos de uma classe compartilham uma


semelhança de família ao apresentarem um comportamento
semelhante. O comportamento de um objeto é definido
pelas mensagens que ele aceita.

22
SEMINFO

Programação Orientada Objetos


em Java

3) Métodos
Métodos são as operações, simples ou complexas,
oferecidas pela classe, que podem ser utilizadas sobre
qualquer objeto que está sendo modelado. De forma bem
simples, podemos dizer que são as ações que podem ser
feitas sobre os objetos de uma classe. Tais ações são na
verdade os procedimentos escritos dentro de cada classe.
Também são chamados de serviços.

publi void recebeNomeIdade ( int idade, String nome)


public String retornaNome( )
public int retornaIdade( )
publi int retornaAnoNascimento( )

SEMINFO

Programação Orientada Objetos


em Java

3) Métodos
Controle de acesso a Métodos (serviços) e Atributos :
• public : Acesso amplo, geral e irrestrito.
• protected : Acesso permitido para a classe, subclasses e
classes do mesmo package.
• private : Acesso permitido somente a métodos da classe.

Assinatura de um método: Especificação formal das


entradas e saídas de um método :Nome do Método, Tipos
de parâmetros, Tipo do retorno.

23
SEMINFO

Programação Orientada Objetos


em Java

3) Métodos
Exemplo:
....
String nome;
int idadeAtual, anoNascimento;
Pessoa P = new Pessoa();
[Link](18, “Maria Eduarda”);
nome = [Link]( );
idadeAtual = [Link]( );
anoNascimento = [Link]( );
[Link](nome + “ tem “ + idadeAtual + “anos e
nasceu em ” + anoNascimento);
....
Quem chama é um outro programa ou seja uma outra classe

SEMINFO

Programação Orientada Objetos


em Java

3) Métodos - Sobrecarga
Sobrecarga é a capacidade de um objeto responder à
mesma mensagem, com métodos distintos, a depender dos
tipos dos parâmetros recebidos.
Exemplo :

public int retornaIdade( ){


return idadePessoa;
}
public int retornaIdade( int numAnosAFrente){
return (idadePessoa + numAnosAFrente);
}

A depender dos parâmetros uma das duas funções será


executada
[Link]( ) ou então [Link] ( 5 )

24
SEMINFO

Programação Orientada Objetos


em Java

3) Métodos - Construtores
Os construtores constituem um tipo especial de método,
chamado quando um objeto é inicializado.
O construtor têm o mesmo nome da Classe em questão.
O construtor é sempre invocado pela palavra new.
Pode ocorrer sobrecarga de construtor
public Pessoa( ) { ou public Pessoa (String profissao){
} profissaoPessoa = profissao;
}
Se não houver um construtor na classe o construtor da
superclasse da classe em questão é chamado. Isso
acontece desta forma por causa do conceito de Herança.

SEMINFO

Programação Orientada Objetos


em Java

4) Herança
Herança é a capacidade de uma classe definir o seu
comportamento e sua estrutura aproveitando definições de
outra classe, normalmente conhecida como classe base ou
classe pai.

Observando essa figura podemos notar que


Classe Pai a classe filha herda tudo o que a classe pai
possui e acrescenta alguma coisa.
Classe Filha

O Java utiliza a palavra chave extends para indicar a criação


de uma nova classe como uma subclasse de uma classe
existente.

25
SEMINFO

Programação Orientada Objetos


em Java

Através do mecanismo de herança é possível definirmos


classes genéricas que agreguem um conjunto de
definições comuns a um grande número de objetos
(Generalização). A partir destas especificações genéricas
podemos construir novas classes, mais específicas, que
acrescentem novas características e comportamentos aos
já existentes (Especialização).

Pessoa superclasse

Professor Aluno
subclasse

SEMINFO

Programação Orientada Objetos


em Java

4) Herança
Classe Professor herda as
Exemplo: características de Pessoa, com
class Professor extends Pessoa { seus atributos e métodos.
int numeroalunos;
public Professor ( int numAlunos ){
numeroAluno = numAlunos;
}
}

Em outra classe podemos fazer :


Professor prof = new Professos(100);
[Link](27,“Mario Costa”);
int ano = [Link]( );
[Link]( [Link]( ) + “nasceu em “ + ano)

26
SEMINFO

Programação Orientada Objetos


em Java

5) Classes abstratas e métodos abstratos


Classes abstratas são classes que não produzem instâncias.
Elas agrupam características e comportamentos que serão
herdados por outras classes. Fornecem padrões de
comportamento que serão implementados nas suas
subclasses.
abstract class figura {
protected int x; // centro da fig. x public void move (int x1, int y1){
protected int y; // centro da fig. y [Link]();
public figura (int x1, int y1){ x = x1;
x = x1; y = y1;
y = y1; [Link]();
} }
public abstract void desenha(); }
public abstract void apaga();

Não é possível fazer: figura F = new figura(5,5);

SEMINFO

Programação Orientada Objetos


em Java

Exemplo

class quadrado extends figura {


int l; // lado do quadrado
public quadrado(int x1, int y1, int l1) {
super(x1, y1);
l = l1;
}
public void desenha( ) {
[Link]("Desenhando quadrado (" + x + "," + y + ")
lado "+ l );
}
public void apaga( ) {
[Link]("Apagando quadrado (" + x + "," + y + ") lado "
+ l );
}
}

27
SEMINFO

Programação Orientada Objetos


em Java

....
quadrado q = new quadrado(20,30,10);
[Link]();
[Link](50,40);
[Link]();
...

figura Classe Abstrata

quadrado triângulo retângulo

Uma classe é abstrata se um ou mais métodos dessa classe são


definidos pela palavra chave abstract

SEMINFO

Programação Orientada Objetos


em Java

6) Polimorfismo
É a possibilidade de se solicitar um serviço a um objeto, cujo
execução vai depender do tipo de objeto instanciado.
Suponha que existam três classes disponíveis numa
biblioteca: Triângulo, Retângulo e Quadrado. Todas elas
possuem um serviço ou método chamado Desenhar() com os
mesmo parâmetros de entrada e saída.

Classe
Triângulo
Desenhar()
Classe
Retângulo

Classe
Retângulo

28
SEMINFO

Programação Orientada Objetos


em Java

7) Interfaces
Se uma classe é definida por apenas métodos abstratos
então é melhor não usar a palavra-chave abstract. Para
estes caso o Java fornece uma técnica chamada de
interfaces que pode ser usada para definir um modelo de
comportamento.
As interfaces diferem dos métodos abstratos no fato de
que nenhum método de interface pode ter um corpo.
As interfaces são estritamente modelos.
Forma do Java lidar com as limitações de herança simples
As interfaces não podem ser instanciadas.

SEMINFO

Programação Orientada Objetos


em Java

Exemplo
interface figura {
public void desenha();
public void apaga();
public void move (int x1, int y1);
}

Definição de métodos que serão implementados nas classes


que implementam esta interface.
Uma classe pode implementar várias interface mas apenas
herda (extends) de uma única classe.
O mecanismo de interface é a forma de implementar herança
múltipla em Java.

29
SEMINFO

Programação Orientada Objetos


em Java

Exemplo
class quadrado implements figura {
int l; // lado do quadrado
int x ; // centro da fig. x
int y ; // centro da fig. y
public quadrado(int x1, int y1, int l1) {
x = x1; y=y1; l = l1;
}
public void desenha( ) {
[Link]("Desenhando quadrado (" + x + "," + y + ") lado "+ l );
}
public void apaga( ) {
[Link]("Apagando quadrado (" + x + "," + y + ") lado " + l );
}
public void move (int x1, int y1){
[Link]();
x = x1;
y = y1;
[Link]();
}
}

SEMINFO

Programação Orientada Objetos


em Java

8) Pacotes
Os pacotes constituem um mecanismo para agrupamento
de classes e interfaces. Toda classe ou interface tem um
pacote. Pode-se nomear de forma explícita o pacote
utilizando a instrução package:
package [Link];
A declaração de package tem de ser a primeira linha sem
comentários ou espaço em brando no arquivo.
A instrução import permite utilizar uma classes definida em
outro pacote.
import [Link];
ou ainda import [Link].*;

30
SEMINFO

Programação Orientada Objetos


em Java

❂ Classes Básicas Importantes

Classe Básica Object


A classe Object é a classe básica de todas as classes do
Java - em última análise a superclasse de todas as classes.
Métodos interessantes : toString( ), getClass( ),
getSuperClass( ), getName( ) entre outros

Classe Strings
Os literais strings são implementados como objetos da
classe String.
Métodos interessantes: length( ), equals( ) entre outros.

SEMINFO

Programação Orientada Objetos


em Java

Wrappers de Tipos
Cada um dos tipos primitivos de dados tem uma classe
wrapper de tipo associada.
São as classes Boolean, Character, Double, Float, Integer,
Long e Number.
Exemplo criação de um objeto da classe Integer
Integer I = new Integer(6) ou Integer I = new Integer(“6”)
Uma vez criada a instância, pode-se aplicar um conjunto de
métodos tais como equals( ), compareTo( ), toString( ), etc.

31
SEMINFO

Ítem III

Tratamento de
Exceções em Java

SEMINFO

Tratamento de Exceções em Java

❂ O que é uma exceção ?


Um dos maiores desafios para os programadores é a
maneira de manipular erros durante a execução de forma
eficiente e elegante.
Java trata isso por um rigoroso esquema de tratamento de
exceção.
Um tratador de exceções é chamado com frequência de
bloco try-catch, devida a sua estrutura.
No bloco try o código passa se não houver nenhum
problema, porém se ocorrer um erro, o Java gera um objeto
capaz de indicar o problema.
A tarefa do bloco catch é interceptar qualquer objeto de
exceção emitido do interior do bloco try.

32
SEMINFO

Tratamento de Exceções em Java

Exemplo:
int z = 0;
try{
z=x/y;
[Link]( “Z = “ + Z);
} catch ( Exception e) {
[Link]( “Erro”);
}
finally {
[Link]( “Fará sempre”);
}

SEMINFO

Tratamento de Exceções em Java

h Emissão de exceções de forma explícita - throws


Os métodos também podem emitir exceções de forma explícita
Um método pode declarar que é capaz de emitir uma exceção,
usando para isso a cláusula throws.
Exemplo das próprias classes do Java (JDK):
Na classe Integer existe um método chamado parseInt (String s)
public static int parseInt (String s) throws NumberFormatException
throw significa que o método pode emitir um certo tipo de
exceção.

33
SEMINFO

Tratamento de Exceções em Java

Exemplo:
String s=“100”, s2=“Não e numero”;
try {
[Link](“O primeiro numero e : “ +
[Link](s);
[Link](“O segundo numero e : “ +
[Link](s2);
}
catch ( NumberFormatException e ) {
[Link](“ Não e possivel converter String em
numero!!”);

SEMINFO

Tratamento de Exceções em Java

Exemplo:
String s=“100”, s2=“40”;
try {
[Link](“O primeiro numero e : “ +
[Link](s);
[Link](“O segundo numero e : “ +
[Link](s2);
throw new NumberFormatException( );
}
catch ( NumberFormatException e ) {
[Link](“ Não e possivel converter String em
numero!!”);

34
SEMINFO

Tratamento de Exceções em Java

Exemplo :
class Vetor {
int s[ ]; Em outra classe
int elementos, indice=0; ...
public Vetor(int tamanho) { Vetor obj = new Vetor(5);
elementos = tamanho;
try{
s = new int [tamanho];
[Link](10);
}
public void insereElemento(int num)
}
throws ArrayIndexOutOfBoundsException { catch {
if (indice > elementos -1) { (ArrayIndexOutOfBoundsExc
throw new eption e){
ArrayIndexOutOfBoundsException();} [Link](“Erro”);
else{ }
s[indice] = num; ...
indice++;
}
}
}

SEMINFO

Tratamento de Exceções em Java

❂ Classes de Exceções
Throwable

Error Exception

...
RuntimeException IOException
...
ArrayIndexOutofBounds
... NullPointerException

35
SEMINFO

Tratamento de Exceções em Java

❂ Exceções mais comuns em java


ArithmeticException, NullPointerException
ClassCastException,NegativeArraySizeException
ArrayIndexOutOfBoundsException, EOFException

Uma exceção em Java é um objeto que é instância de uma


subclasse de [Link]
1) [Link] e suas subclasses são erros
considerados fatais a não devem ser capturados
pelo programa
2) [Link] e suas subclasses são erros
considerados recuperáveis e podem ser tratados
pelo programa

SEMINFO

Ítem IV

Componentes para
Interfaces Gráficas
(JFC)

36
SEMINFO

Componentes para Interfaces


Gráficas (JFC)

❂ Criação de interface de usuário com Swing


h O Swing, faz parte da biblioteca Java Foundation
Classes, é uma extensão do Abstract Windowing Toolkit
que foi integrada a linguagem Java 2.
h O Swing permite a criação de um programa Java com
uma interface que utiliza o estilo do sistema operacional
nativo.
h Todos os elementos do Swing fazem parte do pacote
[Link].
h Todos os componentes do Swing são subclasses da
classse Jcomponent.

SEMINFO

Componentes para Interfaces


Gráficas (JFC)

Estrutura de aplicativo
h O primeiro passo de um aplicativo Swing é gerar uma
classe que seja uma subclasse de JFrame.
import [Link].*;
import [Link].*;
public class Framework extends JFrame{
public Framework( ){
} Inclui os componentes aqui
public static void main (String args[]){
JFrame frame = new Framework();
WindowListener l = new WindowAdapter(){
public void windowClosing(WindowEvent e){
[Link](0);
} Tratamento de eventos
};
[Link](l);
[Link](); Redimensionar para conter
[Link](true); todos componentes e tornar
}
} visível o quadro

37
SEMINFO

Componentes para Interfaces


Gráficas (JFC)

h Um objeto JFrame é subdividido em vários painéis


diferentes. O painel principal é o painel de conteúdo, que
representa a área total de um quadro, ao qual os
componentes podem ser adicionados.
Para adcionar um componente em um painel de conteúdo é
necessário:
1) Crie um objeto JPanel
2) Adicione todos os componentes ao JPanel, usando o
método add(componente);
3) Transforme esse JPanel no painel de conteúdo, usando
o método setContentPane(panel).

SEMINFO

Componentes para Interfaces


Gráficas (JFC)
import [Link].*;
import [Link].*;
public class Framework extends JFrame{ Objeto JButton é criado
public Framework( ){ com um nome
String nome ="Botao de exemplo";
JButton meuBotao1 = new JButton(nome); Objeto Jpanel é criado
JPanel painel = new JPanel(); e o boato é adicionado
[Link](meuBotao1); a ele
setContentPane(painel); setContentPane é
} utilizado para
public static void main (String args[]){ transformar o painel
JFrame frame = new Framework(); em painel de conteúdo
WindowListener l = new WindowAdapter(){ do quadro
public void windowClosing(WindowEvent e){
[Link](0);
}
};
[Link](l);
[Link]();
[Link](true);
}
}

38
SEMINFO

Componentes para Interfaces


Gráficas (JFC)

h Os rótulos são implementados no Swing como a classe


JLabel. São utilizados para identificar o objetivo de outros
componentes em uma interface
h Os campos de texto são implementados em Swing com a
classe JTextField, que pode receber como argumento o
tamanho do campo de texto e um valor default.
...
public Framework( ){
JLabel identificador = new JLabel("Digite seu nome");
JTextField texto = new JTextField(20);
JPanel painel = new JPanel(); Criação de um label e
[Link](identificador); de um objeto de campo
de texto (JTextField).
[Link](texto); Adiciona o label e
setContentPane(painel); depois o objeto
} TextField no painel
... que é um JPanel

SEMINFO

Componentes para Interfaces


Gráficas (JFC)

h Os rótulos são implementados no Swing como a classe


JLabel. São utilizados para identificar o objetivo de outros
componentes em uma interface
h Os campos de texto são implementados em Swing com a
classe JTextField, que pode receber como argumento o
tamanho do campo de texto e um valor default.
...
public Framework( ){
JLabel identificador = new JLabel("Digite seu nome");
JTextField texto = new JTextField(20);
JPanel painel = new JPanel();
[Link](texto);
[Link](identificador);
[Link](texto);
setContentPane(painel);
}

39
SEMINFO

Componentes para Interfaces


Gráficas (JFC)

h As áreas de texto são


implementadas no Swing com a
classe JTextArea. Pode receber
como argumento o número de
linhas e colunas e também um
texto default.
...
public Framework( ){
JPanel painel = new JPanel();
JLabel idArea = new JLabel("Escreva sua reclamação");
JTextArea area = new JTextArea(10,10); Criação de um objeto
[Link](idArea); JTextArea de 10 linhas
e 10 colunas. Foi
[Link](area);
necessário criar
setContentPane(painel); também um label para
} identificar o objetivo
... do objeto

SEMINFO

Componentes para Interfaces


Gráficas (JFC)

h A classe JCheckBox é a implementação das caixas de


seleção no Swing.

...
public Framework( ){
JCheckBox opcao1 = new JCheckBox("Negrito");
JCheckBox opcao2 = new JCheckBox("Itálico", true);
JPanel painel = new JPanel();
[Link](opcao1); Criação de dois
[Link](opcao2); objetos JCheckBox
sendo que o objeto
setContentPane(painel); opcao2 será por
} default selecionado.
...

40
SEMINFO

Componentes para Interfaces


Gráficas (JFC)

h Os grupos de caixa de seleção são implementados no


Swing com a classe ButtonGroup. Neste caso apenas um
componente pode ser selecionado.

public Framework5( ){
ButtonGroup opcao = new ButtonGroup();
JCheckBox homem = new JCheckBox("Masculino", true);
JCheckBox mulher = new JCheckBox("Feminino", false);
[Link](homem);
[Link](mulher); Cria um objeto
JLabel sexo = new JLabel("Sexo :"); ButtonGroup para que
JPanel painel = new JPanel(); este controle que
[Link](sexo); apenas um dos itens
[Link](homem); seja selecionado. Em
[Link](mulher); seguida adiciona os
setContentPane(painel); objetos JCheckBox ao
} objeto ButtonGroup.

SEMINFO

Componentes para Interfaces


Gráficas (JFC)

h As listas de escolha representam uma das possíveis


implementações da classe JComboBox.
...
public Framework ( ){

JComboBox lista = new JComboBox();


[Link]("Casado");
[Link]("Solteiro");
[Link]("Divorciado");
[Link]("Viuvo");
[Link](false);
Método que garante que
JPanel painel = new JPanel();
apenas os valores
[Link](lista);
existentes serão
setContentPane(painel);
selecionados
}
...

41
SEMINFO

Componentes para Interfaces


Gráficas (JFC)

h As barras de rolagem são implementadas no Swing com a


classe JScrollBar. Estas aparecem quando o objeto contém
mais itens do que pode ser apresentado. JScrollPane
basicamente consiste em JScrollBars e um Jviewport
conforme pode ser visto no desenho abaixo.

SEMINFO

Componentes para Interfaces


Gráficas (JFC)
Passa o JTextArea como
parâmetro para criação
do JScrollPane e
aidciona este objeto ao
Pane.
...
public Framework( ){
JPanel painel = new JPanel();
JLabel identificadorArea = new JLabel("Escreva sua
reclamação");
JTextArea area = new JTextArea(10,10);
JScrollPane areaRolagem = new JScrollPane(area);
[Link](areaRolagem);
[Link](identificadorArea);
[Link](areaRolagem);
setContentPane(painel);
}
...

42
SEMINFO

Componentes para Interfaces


Gráficas (JFC)

❂ Gerenciadores de Layout
Um gerenciador de layout determina como os componentes
serão organizados. O gerenciador de layout padrão é o
FlowLayout.

h A classe FlowLayout
Esta classe permite que os componentes fluam da
esquerda para a direita, na ordem em que eles forem
inseridos. Quando não há mais espaço então uma nova
linha de componentes começará imediatamente abaixo da
primeira e na ordem da esquerda para a direita, exceto se
for especificado diferente.
FlowLayout objetoexemplo = new FlowLayout (FlowLayout .RIGHT);
setLayout(objetoExemplo);

SEMINFO

Componentes para Interfaces


Gráficas (JFC)

Aparência do FlowLayout

h A classe GridLayout
Este gerenciador organiza os componentes em uma grade de
linhas e colunas. Os componente são incluídos primeiramente na
linha superior da grade, começando da esquerda para a direita.
Quando todas as células estão preenchidas, o próximo
componente será inserido na célula mais a esquerda na segunda
linha, se houver uma segunda linha.

Linhas e
GridLayout objetoexemplo = new GridLayout (10, 3); colunas
setLayout(objetoExemplo);

43
SEMINFO

Componentes para Interfaces


Gráficas (JFC)

Aparência do GridLayout

h A classe BorderLayout
Esta classe divide o contêiner em cinco seções: North, South,
East, West, Center.

BorderLayout objetoexemplo = new BorderLayout (5, 8);


setLayout(objetoExemplo);
Distância em
pixel horizontal
e vertical

SEMINFO

Componentes para Interfaces


Gráficas (JFC)

Aparência do BorderLayout

h Classe CardLayout
Este gerenciador difere dos anteriores porque ele pode ocultar
alguns componentes, mostrando apenas um por vez.
h Classe GridBagLayout
É o mais flexível e complexo dos gerenciadores de Layout. Um
componente pode ocupar mais de uma célula na grade e as
proporções entre as linhas e colunas não precisam ser iguais.

44
SEMINFO

Componentes para Interfaces


Gráficas (JFC)
Exemplo
mport [Link].*;
import [Link].*;
import [Link].*;
public class Framework10 {
public Component createComponents(int num) {
String nome = "Botao" + num;
JButton button = new JButton(nome);
JPanel pane = new JPanel();
[Link]([Link](
30, //top
30, //left
10, //bottom
30) //right
);
[Link](new GridLayout(0, 1));
[Link](button);
return pane;
}

// Continuação próxima página

SEMINFO public static void main(String[] args) {

JFrame frame = new JFrame("SwingApplication");


Framework10 app = new Framework10();
for (int i =1; i<=5; i++){
Component contents = [Link](i);
switch (i){
case 1 :
[Link]().add(contents, [Link]);
break;
case 2 :
[Link]().add(contents, [Link]);
break;
case 3:
[Link]().add(contents, [Link]);
break;
case 4 :
[Link]().add(contents, [Link]);
break;
case 5:
[Link]().add(contents, [Link]);
break;
default:
break;
}
}
[Link](new WindowAdapter() {
public void windowClosing(WindowEvent e) {
[Link](0);
}
});
[Link]();
[Link](true);
}
}

45
SEMINFO

Componentes para Interfaces


Gráficas (JFC)

Uso de vários tipos de componentes com Layouts combinados

SEMINFO

Componentes para Interfaces


Gráficas (JFC)

❂ Tratando de eventos de usuário com Swing


h Para transformar uma interface Java em um programa
Java que funcione é necessário tornar a interface receptiva
aos eventos do usuário.
h O Swing utiliza um conjunto de classes chamadas de
receptores de eventos.
h Se uma classe quer responder a um evento de usuário
no sistema de tratamento de eventos do Java 1.2 então é
necessário implementar a interface que trata de eventos.
h Cada receptor trata de um tipo específico de evento e
uma classe pode implementar quantos deles forem
necessários.

46
SEMINFO

Componentes para Interfaces


Gráficas (JFC)

h Receptores de eventos:

1) ActionListener - Eventos de ação, que são gerados por um usuário


agindo sobre um componente, como um clique de mouse em um
botão.
2) AdjustmentListener - Eventos de ajustes, como barra de rolagem
movida.
3)FocusListener - Eventos de foco de teclado, como um campo de
texto que recebe ou perde foco.
4) ItemListener - Eventos Eventos de item, como um item de caixa de
seleção é alterado.
5) KeyListener - Eventos de teclado quando um usuário digita texto no
teclado.

SEMINFO

Componentes para Interfaces


Gráficas (JFC)
6) MouseListener - Eventos de mouse, entrando na área de um
componente e deixando a área de um componente.
7) MouseMotionListener - Eventos de movimento de mouse, que são
usados para controlar toda a movimentação de um mouse sobre
componente.
8) WindowsListener - Eventos de janela, que são gerados por uma janela,
como quando a janela principal é maximizada, minimizada ou feclada.

Exemplo
public class Exemplo extends Jframe implements WindowListener,
ItemListener, ActionListener {
// código da classe
// tem de implementar os métodos destas três interfaces
}

47
SEMINFO

Componentes para Interfaces


Gráficas (JFC)

h Depois que o componente que deve receber o evento for


criado é necessário que o receptor seja incluído no
componente.
h Assim, após a criação de um componente, os seguintes
métodos podem ser associados a ele:
addActionListener( ), addAdjustmentListener( ),
addFocusListener(), addItemListener( ), addKeyListener( ),
addMouseListener( ), addMouseMotionListener( ),
addWindowsListener( ).

h O exemplo a seguir cria um objeto JButton e associa um


receptor de evento de ação a ele:
Jbutton botao = new Jbutton(“Nome do botao”);
O this indica que a classe
[Link](this); atual é a receptora do evento

SEMINFO

Componentes para Interfaces


Gráficas (JFC)

h Quando uma classe é associada a uma interface ela tem


de implementar todos os métodos da interface. Por exemplo,
a interface ActionListener possui apenas um método
actionPerformed(ActionEvent evt), assim todas as classes
que implementarem ActionListener devem ter este método.
hSe mais de um componente da classe possuir um receptor
de evento de ação, é necessário descobrir qual deles foi
usado e então agir de acordo com as ações do programa.
h O objeto ActionEvent pode ser usado para descobrir
detalhes a respeito do componente que gerou o evento.
h Pode descobrir o tipo do objeto (pelo nome do objeto) ou
então o tipo do componente que foi acionado (JTextField,
JButton , etc)

48
SEMINFO

Componentes para Interfaces


Gráficas (JFC)
Pelo nome do Objeto
public void actionPerformed(ActionEvent evt){
Objeto src = [Link]( );
if (src == nomeObjeto){
// código de tratamento Exemplos de
} else { Eventos de Ação
// código de tratamento
}
}
Pelo tipo do Componente
public void actionPerformed(ActionEvent evt){
Objeto src = [Link]( );
if (src instanceof JButton){
Sobre: (Jbutton,
// código de tratamento
JCheckBox, JComboBox,
} else {
JTextField ou
// código de tratamento
} JRadioButton)
}

SEMINFO

Componentes para Interfaces


Gráficas (JFC)
Exemplos de
Eventos de itens

Compara com o
public void itemStateChanged (ItemEvent evt ){ nome do JComboBox
Objeto src = [Link]( );
if (src == nomeJComboBox){
Pega o item do
Objetct novoNome = [Link]( ); JComboBox
String itemSelecionado = [Link]( );
}
Sobre: (Jbutton,
}
JCheckBox, JComboBox, ou
JRadioButton)

49
SEMINFO

Componentes para Interfaces


Gráficas (JFC)
Exemplos de
Eventos de Janela
Os setes métodos na interface WindowsListener são:
windowActivated(WindowEvent), windowClosed(WindowEvent),
windowClosing(WindowEvent), windowDeactivated(WindowEvent),
windowDeiconified(WindowEvent), windowIconified(WindowEvent),
windowOpened(WindowEvent),
...
JFRame frame = new Jframe( );
[Link](new WindowAdapter() {
public void windowClosing(WindowEvent e) {
[Link](0);
}
}); ...

SEMINFO

Componentes para Interfaces


Gráficas (JFC)

Uso de vários tipos de componentes com Layouts combinados

Evento de item Evento de ação

50
SEMINFO

Ítem V

Applets com
(JFC)

SEMINFO

Applets Java

❂ O que são Applets ?


h Um Applet é um programa em Java que foi projetado para
ser executado por um navegador (browser) da WEB.
Applets só podem ser executados em navegadores que
foram projetados para executar Java. Isso significa que
eles têm de ser equipados com um interpretador de
bytecodes.
h Se um applet for desenvolvido com recursos introduzidos
no Java 1.1 ou 2, o programa não será executado em um
navegador que não ofereça suporte a esta versão.
h A Sun desenvolveu um complemento de navegador,
chamado de Java-Plug-in.

51
SEMINFO

Applets Java

h Os applets não possuem um método main ( ), que é


chamado automaticamente para iniciar o programa. Em vez
disso, existem vários métodos que são chamados em
diferentes pontos na execução de um applet.
h Para criar um applet é necessário criar uma classe que
herde da classe [Link] ou então de
[Link].

import [Link];
public class minhaApplet extends JApplet{
// código aqui
}

SEMINFO

Applets Java

❂ Principais atividades de uma Applet:


1) Inicialização:
Ocorre quando o applet é carregado. Esta etapa pode
incluir a criação dos objetos de que o applet precisa . Para
fornecer comportamento para a inicialização, é necessário
redefinir o método init( );
public void init ( ) {
//código de inicialização
}
2) Partida:
Ocorre após a inicialização. Também pode acontecer
se o applet foi interrompido. A partida pode acontecer
várias vezes mas a inicialização apenas uma. Para fornecer
comportamento é necessário redefinir o método start ( );

52
SEMINFO

Applets Java

3) Interrupção:
A interrupção ocorre quando o usuário sai da página
que contém um applet que esteja em execução. Por
definição todas as threads que o applet inicializou
continuam a menos que seja redefinido o método stop( )
indicando que elas devem parar.
4) Destruição:
O método destroy( ) permite que o applet faça uma
limpeza antes de ser liberado da memória. Este método
pode ser usado para acabar com todos os threads que
estiverem sendo executados ou para liberar todos os
outros objetos.

SEMINFO

Applets Java

5) Pintura:
Atráves da pintura é que o applet apresenta algo na
tela, seja um texto, uma linha, uma imagem, etc. Para
apresentar algo redefina o método paint ( ) colocando o
código desejado.
Este método recebe como argumento um objeto da classe
Graphics, que deve ser também importada
([Link] ).
import [Link];
public void paint ( Graphics g ) {
//código da pintura
}

53
SEMINFO

Applets Java

❂ Incluindo um Applet em uma página HTML

Na página [Link]
CODE : Especifica o nome
<HTML> do arquivo de classe da applet
<BODY>
<APPLET CODE="[Link]", WIDTH=300 HEIGHT=300>
</APPLET>
</BODY> WIDTH : Especifica a largura da
</HTML> janela do applet na página WEB

HEIGHT : Especifica a altura


da janela do applet

Para testar use o visualizador da SUN


appletviewer [Link]

SEMINFO

Applets Java

Exemplo do Sistema Auto Loja em Applet

54
SEMINFO

Bibliografia

Bibliografia utilizada:

1) Laura Lemay & Rogers Cadenhead, “Aprenda em 21 dias


Java 2”, Editora Campos, 1999.
2) Gary Cornell & Cay S. Horstmann, “Core Java”, Editora
Makton Books, 1998.
3) Bruce Eckel, “Thinking java”, Prentice Hall PTR, 1998.
4) David Flanagan, “Java Examples in a Nutshell”, O’REILLY,
1997.
5) K. C. Hopson & Stephen E. Ingram, “Desenvolvendo
Applets com Java”, Editora Campos, 1997.

55

Você também pode gostar