Escolar Documentos
Profissional Documentos
Cultura Documentos
Gestão de Sistemas de
Informação
3º Ano
INSTITUTO SUPER
Fax: 23323501
E-mail: isced@isced.ac.mz
Website: www.isced.ac.mz
i
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Agradecimentos
ii
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Visão geral 1
Bem vindo à Disciplina/Módulo de Programação Orientada ao Objecto ........................ 1
Objectivos do Módulo ....................................................................................................... 1
Quem deveria estudar este módulo .................................................................................. 2
Como está estruturado este módulo .................................................................................. 2
Ícones de actividade.......................................................................................................... 3
Habilidades de estudo ...................................................................................................... 4
Precisa de apoio? .............................................................................................................. 5
Tarefas (avaliação e auto-avaliação) ............................................................................... 6
Avaliação .......................................................................................................................... 7
iii
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
TEMA – V: MINIPROJECTO 80
UNIDADE Temática 4.1. A linguagem Java. .................................................................... 80
Bibliografia 81
iv
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Visão geral
Objectivos do Módulo
O estudante deverá:
▪ Discutir alternativas de projecto de Linguagens;
▪ Implementar conceitos como abstracção de dados, modularidade
e reusablidade;
Objectivos Específicos
▪ Desenvolver técnicas de implementação de linguagens;
▪ Ter uma visão geral dos paradigmas imperativa, orientado a
objectos e funcional;
▪ Construir GUI adequados aos seus programas de acordo com os
princípios de interface homem-máquina;
▪ Sistematizar a utilização das estruturas de dados na resolução de
categorias de problemas;
▪ Saber escolher, comparar, conceber e utilizar estruturas de dados
adequadas ao problema a resolver;
▪ Conhecer a programação em Java e resolver problemas
adequados a programas de média dimensão;
▪ Conhecer a modelação orientada a objectos (O O) e usá-la para
resolver problemas com aplicação da programação O O em Java.
▪ Implementa linguagens formais;
▪ Tem uma visão geral dos paradigmas de programação mais
usuais;
▪ Trabalha com a linguagem java.
1
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
▪ Um índice completo.
▪ Uma visão geral detalhada dos conteúdos do módulo, resumindo
os aspectos-chave que você precisa conhecer para melhor
estudar. Recomendamos vivamente que leia esta secção com
atenção antes de começar o seu estudo, como componente de
habilidades de estudos.
Conteúdo desta Disciplina / módulo
Este módulo está estruturado em Temas. Cada tema, por sua vez
comporta certo número de unidades temáticas ou simplesmente
unidades. Cada unidade temática se caracteriza por conter uma
introdução, objectivos, conteúdos.
No final de cada unidade temática ou do próprio tema, são
incorporados antes o sumário, exercícios de auto-avaliação, só
depois é que aparecem os exercícios de avaliação.
Os exercícios de avaliação têm as seguintes características: Puros
exercícios teóricos/Práticos, Problemas não resolvidos e actividades
práticas, incluído estudo de caso.
2
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Outros recursos
Ícones de actividade
Ao longo deste manual irá encontrar uma série de ícones nas margens
das folhas. Estes ícones servem para identificar diferentes partes do
processo de aprendizagem. Podem indicar uma parcela específica
de texto, uma nova actividade ou tarefa, uma mudança de
actividade, etc.
3
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Habilidades de estudo
É impossível estudar numa noite tudo o que devia ter sido estudado
durante um determinado período de tempo; deve estudar cada ponto
da matéria em profundidade e passar só ao seguinte quando achar
que já domina bem o anterior.
4
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Precisa de apoio?
Caro estudante, temos a certeza que por uma ou por outra razão, o
material de estudos impresso, lhe pode suscitar algumas dúvidas como
falta de clareza, alguns erros de concordância, prováveis erros
ortográficos, falta de clareza, fraca visibilidade, página trocada ou
invertidas, etc.). Nestes casos, contacte os serviços de atendimento e
apoio ao estudante do seu Centro de Recursos (CR), via telefone, SMS,
5
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
1
Plágio - copiar ou assinar parcial ou totalmente uma obra literária, propriedade
intelectual de outras pessoas, sem prévia autorização.
6
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Avaliação
7
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Introdução
9
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
1.1.3. A JVM
10
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
11
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Sumário
Exercícios
12
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Introdução
1.2.1. Constantes
Um identificador que pode ter a sua associação com um valor refeita zero ou mais
vezes é chamado de variável. Se uma variável não tiver ainda um valor associado,
então dizemos que ela está indefinida. Ao escrevermos uma aplicação podemos
associar um valor a um identificador e especificar que tal associação não pode
mais ser desfeita. Neste caso dizemos que tal identificador representa uma
constante.
Uma aplicação pode manipular valores de naturezas distintas tais como caracteres,
inteiros e reais. O uso pretendido de uma variável deve ser declarado para
orientar o compilador no processo de análise sintáctica do "código fonte" (isto é,
código escrito em uma linguagem de programação de alto nível de abstracção) e
de geração de "código objecto" (isto é, código em linguagem de máquina). A
declaração de uso pretendido se dá através da definição de um tipo para cada
identificador utilizado para representar um valor. Um tipo caracteriza o universo
de valores válidos que podem ser associados a identificadores definidos como
sendo do tipo em questão.
1.2.2. Variáveis
13
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Na declaração de uma variável, devemos dizer seu tipo (inteiro, texto ou real, por
exemplo) e, além disso, qual é o nome que usaremos para referenciá-la no texto
do programa. Para declarar uma variável do tipo inteiro que representa o número
de uma conta, utilizamos o seguinte código:
int numeroDaConta;
Depois de declarada, uma variável pode ser utilizada para armazenar valores.
Por exemplo, se estivéssemos interessados em guardar o valor 1 na variável
numeroDaConta que declaramos anteriormente, utilizaríamos o seguinte código:
numeroDaConta = 1;
14
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Nesse código, estamos a guardar na variável saldo o valor da conta 100.0 (saldo
antigo) menos 10.0 então seu valor final será de 90.0. Da mesma forma que
podemos subtrair valores, podemos também fazer somas (com o operador +),
multiplicações (operador *) e divisões (operador /).
15
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Observamos que no Java toda variável possui um tipo, utilizamos o int quando
queremos armazenar valores inteiros e double para números reais. Agora vamos
descobrir quais são os outros tipos de variáveis do Java.
Os tipos listados nessa tabela são conhecidos como tipos primitivos ou value types
da linguagem Java. Toda vez que atribuímos um valor para uma variável de um
tipo primitivo, o Java copia o valor atribuído para dentro da variável.
Agora que conhecemos os tipos primitivos da linguagem Java, vamos ver como é
que eles interagem dentro de uma aplicação. Suponha que temos um código que
declara uma variável do tipo inteiro e depois tenta copiar seu conteúdo para uma
variável long:
int valor = 1;
Nesse caso, como o tamanho de uma variável long é maior do que o de uma
variável int, o Java sabe que podemos copiar o seu conteúdo sem perder
16
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
informações e, por isso, esse é um código que compila sem nenhum erro. Agora
vamos tentar copiar o int para uma variável do tipo short:
int valor = 1;
Nesse código, tentamos copiar o conteúdo de uma variável maior para dentro de
uma de tamanho menor. Essa cópia pode ser perigosa pois o valor que está na
variável do tipo int pode não caber na variável short e, por isso, o compilador do
Java gera um erro de compilação quando tentamos fazer essa conversão.
int valor = 1;
17
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Sumário
Exercícios
18
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Introdução
1 / * Divisão e multiplicação
2 + - Soma e subtracção
1.3.1. Tipo
19
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
1.3.2. Precedência
Multiplicativos */%
Aditivos +-
igualdade == !=
Bit-aBit E &
Bit-aBit XOU OR ^
Bit-aBit OU OR
|
Lógico E &&
Lógico OU ||
Ternário ?
3.
20
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
São operadores unários que alteram o valor de uma variável e seus sinais são
posicionados antes do identificador da variável. Como exemplo, pode-se citar
o Incremento ++, Decremento --, Sinal Positivo +, Sinal Negativo -, Inversão e
Incremento ~ e Negação !. O incremento e decremento, já vimos o que faz. Eles
estão sendo citados aqui novamente porque seus sinais podem vir antes de
variáveis também e numa operação complexa (com outros operadores binários)
alteram a precedência da operação. O Sinal Positivo +retorna a variável que
vem depois dele com o mesmo sinal, o Sinal Negativo - inverte o sinal de
variáveis transformando números positivos em negativo e vice-versa. Ele não
pode ser usado em variáveis dos tipos booleano e char. O Incremento e Inversão
~ aumenta o número em uma unidade e inverte o seu sinal. Só pode ser usado
em inteiros. Já a operação de negação ! transforma "verdadeiro" em "falso" e
vice-versa, só podendo ser usado em variáveis do tipo booleano. Também só
funcionam em variáveis, não em literais. Exemplos de uso:
21
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
int x = 5; // x contém 5
7. Neste exemplo, temos que, ao final x vale 7 (duas vezes incrementado), y vale
5 (o valor inicial de x) e z vale 7 (o valor final de x). Deve-se evitar usar mais
de um operador prefixal e sufixal na mesma linha, porque isto torna o código
incompreensível, por exemplo: x = (y++ + ++z - --x) + ++y.
8.
22
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
que não sejam do tipo boolean e nem do tipo char. O segundo pode dividir o
primeiro número pelo segundo. Também não pode ser usado em valores
booleans ou char. O terceiro retorna o resto da divisão do primeiro pelo
segundo. Exemplos de uso:
23
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
boolean variavel;
24
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
boolean variavel;
class Pessoa{
String nome;
this.nome = nome;
Os Operadores Bit-a-Bit são todos aqueles que realizam suas operações sobre
os bits de um número, e não sobre o seu valor. Existem ao todo três destes
operadores e cada um deles tem um valor de precedência diferente. O que
tem precedência mais alta é o AND bit-a-bit (&). Ele analisa dois bits e retorna
1 se ambos forem iguais à 1 e 0 caso contrário. Depois vem o OR exclusivo bit-
a-bit (^) que retorna 1 se os bits forem diferentes e 0 caso contrário. Por último,
25
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
vem o operador OR inclusivo (|), que retorna 0 caso ambos os bits valerem 0 e
retorna 1 caso contrário. Estes operadores podem ser usados em qualquer tipo
de dados, desde que possuam o mesmo tamanho em bits. Exemplos de uso:
int numero;
boolean variavel;
int numero1=245;
int numero2=123;
26
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Precedência 0: atribuições
27
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
1.3.3. Separadores
1 , Vírgula
2 () Parenteses
3 [] Colchetes/ Parenteses
rectos
4 {} Chavetas
Separadores em Java
1 ; Ponto-e-vírgula
1 . Ponto
1 , Virgula
1 () Parenteses
2 [] Parenteses rectos
2 {} Chavetas
28
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Sumário
Exercícios
int numero=5;
numero=numero+8;
numero=numero-numero;
29
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Introdução
Comando Palavras-chave
Tomada de decisões if-else, switch-case
Laços ou repetições for, while, do-while
Apontamento e tratamento de try-catch-finally, throw
excepções
outros break, continue, label:,
return
if ([condição])
30
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
if([condição])
else
Por exemplo:
import java.io.StreamTokenizer;
double x;
try {
inp.nextToken();
x = inp.nval;
catch(java.io.IOException e) {
x = 0;
If (x >= 0)
31
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
else
System.out.println("x e negativo");
1. {System.out.print("x = ");
System.out.println(x);}
2. {temp = y; y = x; x = temp;}
import java.io.StreamTokenizer;
double a, b, c, delta;
StreamTokenizer in = new
StreamTokenizer(System.in);
try {
System.out.println("Digite os coeficientes da
equação ax^2+bx+c = 0");
32
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
a = in.nval;
b = in.nval;
c = in.nval;
catch(java.io.IOException e) {
a = 0; b = 0; c = 0;
System.out.println(“Equação: ("+a+”)
x^2+("+b+")x+("+c+")" );
r = Math.sqrt(delta);
d = 2*a;
x1 = (-b - r) / d;
x2 = (-b + r) / d;
33
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
else
double x;
x = -b / (2*a);
System.out.println("Fim da discussão.");
34
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
if (x<1) then
y = x*x;
else
y = 2-x;
if ([condição 1])
[comando 1]
[comandos 2])
35
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
[comando 3]
....
else
[comando n]
import java.io.StreamTokenizer;
double x, y;
y = | 1, se -1 <= x < 1,
| x*x, se 1 <= x.
*/
try {
x = inp.nval;
catch(java.io.IOException e){
36
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
x = 0;
if (x<-1)
y = x+2;
else
if(x<=0)
y = 1;
else
y = x*x;
switch([expressão]) {
[comando 1]
break;
[comando 2]
break;
37
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
[de comando n]
break;
default:
[comando]
int op;
op = 2;
switch(op) {
case 1:
System.out.println("case 1: op="+op);
break;
case 2:
System.out.println("case 2: op="+op);
break;
38
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
case 3:
System.out.println("case 3"+op);
break;
default:
while([condição])
[comando subjacente]
Por exemplo:
39
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
x = (a+b)/2;
a = x;
b = x;
do
[comando]
while([condição]);
40
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
char op;
int i = 0;
double x = 0;
do {
System.out.println("\nOpcoes:");
System.out.println("f - fim");
try {
op = (char)System.in.read();
catch(java.io.IOException e) {
op = 'q';
switch(op) {
case 'p':
x = 0.5; i = 2;
break;
41
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
case 'n':
x = -0.2; i = -1;
break;
case 'x':
break;
case 'i':
break;
case 'f':
break;
default:
} while(op != 'f');
System.out.println("\nAte logo.");
[comando]
42
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
[expressão 1]
while ([condição]) {
[comando]
[expressão 2]
System.out.println("V["+i+"]="+v[i]);
soma += 1/n;
ou ainda por
43
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Exemplo:
for(i=0; i<n;i++)
if(i == n)
Exemplo:
if(A[i][j] == 0) {
break;
44
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
exemplo:
soma = 0;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if(A[i][j]<0) {
break fim;
esle
soma += Math.sqrt(A[i][j]);
fim:
45
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Sumário
Exercícios
46
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Exercícios do TEMA
47
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Introdução
Você irá utilizar este bloco quando você usar algum método que lance
uma CheckedException e quando você quer dar algum tratamento a
exception.
2.1.2. Sintaxe
try {
48
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
// com referência ex
} finally {
49
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Uma excepção contém ao menos uma String que a descreve, que pode
ser obtida a aplicação do método getMessage(), mas pode
eventualmente conter outras informações. Por
exemplo, InterruptedIOException inclui um atributo público do tipo
inteiro, bytesTransferred, para indicar quantos bytes foram transferidos
antes da interrupção da operação ocorrer. Outra informação que pode
sempre ser obtida de uma excepção é a sequência de métodos no
momento da excepção, obtenível a partir do método printStackTrace().
50
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
try { ... }
void saveNetDevices() {
try {
FileOutputStream("NetDevices.txt");
oos.writeObject(mNetDevices);
oos.close();
fos.close();
JOptionPane.showMessageDialog(null, "NetDevices
list is null - No devices saved", "Saving NetDevices",
JOptionPane.INFORMATION_MESSAGE);
51
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
JOptionPane.showMessageDialog(null, "NetDevices
list is invalid - No devices saved", "Saving
NetDevices", JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(null, "NetDevices
list is not serializable - No devices saved", "Saving
NetDevices", JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(null, "IO
Exception saving NetDevices list - No devices saved",
"Saving NetDevices",
JOptionPane.INFORMATION_MESSAGE);
try {
comando(s);
} catch (Exception e) {
52
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
comando(s);
} catch (FileNotFoundException f) {
comando(s);
Para que tudo funcione temos que trocar a ordem dos blocos “catch”:
try {
comando(s);
} catch (FileNotFoundException f) {
comando(s);
} catch (Exception e) {
comando(s);
Se você usa algum método que lança “Checked Exceptions” você deve,
obrigatoriamente, tratar esta Exception. Ou seja, tem que haver
53
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
try {
oidsList.add(new String(mOID));
br.close();
fin.close();
54
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Sumário
Nesta Unidade temática 2.1 aprendemos como utilizar o try e catch que
serve para tratamento de erros e excepções matemática onde o try é a
possível solução do problema e o catch é o problema a ser resolvido.
Exercícios
55
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
try {
comando(s);
} finally {
comando(s);
}\ou
try {
comando(s);
comando(s);
} finally {
comando(s);
Ao contrário dos blocos “catch” você só pode ter um bloco “finally” por
cada bloco “try”.
56
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Sumário
Nesta Unidade temática 2.2 somente do finally que tem como função
principal fazer com que uma aplicação mesmo que tenha uma excepção
corra e que “substitui” o catch que quem a função inversa.
Exercícios
57
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Exercícios do TEMA
58
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Introdução
61
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
62
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Sumário
Exercícios
63
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Introdução
package com.exemplo;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;
64
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
this.tamMax = tamMax;
throws BadLocationException {
if (str == null)
return;
if (tamMax <= 0)
return;
65
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
66
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
package com.exemplo;
import javax.swing.JFrame;
import javax.swing.JTextField;
field.testaJTextField();
this.setTitle("Exemplo");
this.setSize(200, 180);
67
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
txtExemplo.setDocument(new
TamanhoFixoJTextField(5));
this.getContentPane().add(txtExemplo,
"North");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
;
setVisible(true); }
68
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
package com.exemplo;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;
public class TamanhoFixoJTextField extends
PlainDocument {
69
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
this.tamMax = tamMax;
}
if (str == null)
return;
70
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
71
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Sumário
Exercícios
72
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Introdução
JFormattedTextField bi = new
JFormattedTextField(mascaraBi);
Quando criamos um MaskFormatter podemos utilizar ao invés de “#”,
outros caracteres, dependendo do tipo de restrição que desejamos
implementar no JFormattedTextField. Esses caracteres são definidos
abaixo:
73
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
package com.exemplo;
import java.awt.Container;
import java.text.ParseException;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.text.MaskFormatter;
74
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
//Define as máscaras
MaskFormatter mascaraCep = null;
MaskFormatter mascaraTel = null;
MaskFormatter mascaraCpf = null;
MaskFormatter mascaraData = null;
try{
75
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
mascaraBi = new
MaskFormatter("###########-U");
mascaraTel = new
MaskFormatter("(###)##-#######");
mascaraNuit = new
MaskFormatter("#########-##");
mascaraData = new
MaskFormatter("##/##/####");
mascaraCep.setPlaceholderCharact
er('_');
mascaraTel.setPlaceholderCharact
er('_');
mascaraCpf.setPlaceholderCharact
er('_');
mascaraData.setPlaceholderCharac
ter('_');
}
catch(ParseException excp) {
System.err.println("Erro na
formatação: " + excp.getMessage());
System.exit(-1);
}
76
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
JFormattedTextField jFormattedTextData
= new JFormattedTextField(mascaraData);
jFormattedTextCep.setBounds(150,40,100,
20);
jFormattedTextTel.setBounds(150,80,100,
20);
jFormattedTextCpf.setBounds(150,120,100
,20);
jFormattedTextData.setBounds(150,160,10
0,20);
}
Segue na Figura 5 um exemplo de como ficou a tela codificada acima.
77
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
78
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Exercícios
Exercícios do TEMA
79
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
TEMA – V: MINIPROJECTO
80
ISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 3º Ano
Disciplina/Módulo: Programação Orientada ao Objecto
Bibliografia
Andrews, M. (1998). Getting Started with Swing. Retrieved from
hppt://www.java.sun.com/prudutcts/jfc/tsc/what.is.swig/getting.sta
rted/getting.started.html
81