Professional Documents
Culture Documents
1 Objectivo:
Contedos
Comunicao em rede Modificadores Packages Multithreading Streams
Trabalho
Realizao de um trabalho individual sobre todas as aprendizagens desenvolvidas durante o mdulo, nomeadamente os programas desenvolvidos em linguagem JAVA.
Comunicao em rede
Linguagem JAVA e comunicao em rede Links em applets Comunicao entre applets
COMUNICAO EM REDE
10
Links em applets
URLs absolutos
URLs relativos
Mtodos de acesso
getProtocol(), getHost(), getFile(), getPort(), getRef(), sameFile(URL), getContent(), openStream()
11
12
MODIFICADORES
13
14
Modificadores
Controlo de acesso a mtodos e variveis Modificador final Mtodos e classes abstract
Interfaces
15
16
protected :
Atributos e mtodos definidos como protected so acessveis pelos mtodos da prpria classe e pelas classes derivadass
Formador Ricardo Carvalho
17
18
Modificador final
A palavra chave final tem vrias utilidades. Numa classe,
define que a classe nunca poder ter uma filha, isso , no pode ser estendida. A classe String, por exemplo, final.
Mtodo,
Como modificador de mtodo, final indica que aquele mtodo no pode ser reescrito.
19
20
Modificador final
Varivel
indica que o valor daquela varivel nunca poder ser alterado, uma vez atribudo. Se a varivel for um atributo, voc tem que inicializar seu valor durante a construo do objecto - caso contrrio, ocorre um erro de compilao, pois atributos final no so inicializados com valores default).
Modificador final
Uma varivel static final tem uma cara de constante daquela classe e, se for public static final, a parece uma constante global.
21
22
24
Interfaces
Uma interface semelhante a uma classe abstrata excepto pelo fato desta no poder ter qualquer mtodo concreto ou varivel de instncia. Uma interface representa uma coleco de declaraes de mtodos abstractos e possivelmente constantes. Qualquer classe que implementa uma interface deve obrigatoriamente implementar todos os mtodos especificados pela interface. Outra caracterstica importante que uma classe pode derivar de apenas uma nica outra classe (herana simples), mas podeimplementar um nmero indeterminado de interfaces.
25
26
Packages
Programas Escrita do cdigo Excepes em JAVA Limitaes colocadas na programao Clausula finally
PACKAGES
27
28
Programas
package:
Grupo de tipos relacionados (classes e interfaces); Fornece: Proteco no que respeita a acessos; Gesto de nomes. Resulta em:
Facilidade em encontrar e usar as classes e interfaces; Evitar conflitos no que respeita aos nomes; Controlar o acesso.
Programas
As classes e interfaces que fazem parte da plataforma Java so membros de vrios packages (dependendo da sua funo).
java.lang classes fundamentais; java.io classes para ler e escrever (input e output); etc.
30
Programas
Criao de Packages
Escolher um nome e colocar package nome na primeira linha do ficheiro de cdigo de cada classe e cada interface que se quer colocar nesse package.
Programas
Utilizao de packages
Utilizao de Packages
Referir-se aos elementos pelo seu nome completo; Importar o elemento; Importar todos os elementos do package.ages
Formador Ricardo Carvalho
31
32
Escrita do cdigo
Considere o seguinte mtodo que l um ficheiro inteiro para a memria
Escrita do cdigo
Ignora potenciais erros
O que acontece se o ficheiro no pode abrir? O que acontece se no se conseguir obter o tamanho do ficheiro? O que acontece se no houver memria suficiente? O que acontece se a leitura falhar? O que acontece se o ficheiro no fechar?
33
34
Escrita do cdigo
necessrio detectar, reportar e manipular os erros.
Escrita do cdigo
Utilizar excepes em vez das tcnicas de gesto de erros tradicionais.
35
36
Excepes em JAVA
Uma excepo um evento que ocorre durante a execuo de um programa e que desfaz o fluxo normal de instrues.
Por exemplo, tentar aceder um elemento fora dos limites de um array, tentar dividir um nmero por zero, so exemplos de excepes.
Excepes em JAVA
Excepes no verificveis:
Este tipo de excepo deriva da classe RuntimeException. Podemos escolher o que fazer com uma excepo que ocorre em tempo de execuo (como dividir um nmero por zero ou acessar um elemento invlido de um array); Podemos tentar captur-la e trat-la ou ento a ignorarmos.
37
A diferena entre um erro e uma excepo que uma excepo pode ser capturada e o programa pode seguir em frente a partir dali, j quando um erro ocorre o programa necessariamente ir terminar.
Formador Ricardo Carvalho
38
Excepes em JAVA
Excepo verificveis:
Excepes deste tipo so extenses da classe Exception. Elas devem obrigatoriamente ser capturadas em algum lugar da aplicao, sob pena de ocorrer erro de compilao caso isso no seja feito.
Excepes em JAVA
Excepo verificveis:
Podem ter sido causadas por algo fora do controlo do nosso programa; DEVEM ser tratadas pelo nosso cdigo, seno o programa no compila.
No verificveis (runtime):
So culpa nossa! (provavelmente) poderiam ter sido evitadas se fossem devidamente analisadas e tratadas no cdigo (verificar situaes de erro). No precisam de ser tratadas, mas faro
39
40
10
Excepes em JAVA
Tratamento de Excepes Quando chamamos um mtodo que pode retornar uma excepo temos trs alternativas: Excepes em JAVA
Excepes em JAVA
Captao de excepes
Se um bloco de cdigo chama um ou mais mtodos que podem disparar excepes, coloque o cdigo dentro de um bloco try, com um ou mais blocos catch imediatamente posterior a este. Cada bloco catch trata de uma excepo particular. Pode-se opcionalmente incluir um bloco finally aps todos os blocos catch, o qual sempre executado mesmo que nenhuma excepo ocorra.
41
Capturar a excepo e trat-la Deixar a excepo passar pelo mtodo; em algum outro lugar ela deve ser capturada. Capturar a excepo e disparar uma excepo diferente. A nova excepo deve ser capturada em algum lugar.
Formador Ricardo Carvalho
42
Excepes em JAVA
Captao de excepes
Excepes em JAVA
Deixando uma excepo passar atravs do mtodo
Quando uma excepo ocorre mas no temos condio de trat-la naquele local, podemos pass-la adiante para que num mtodo mais acima ela possa ser tratada adequadamente. Para liberar um mtodo de tratar uma determinada excepo devemos usar o comando throws na declarao do mesmo.
43
44
11
Excepes em JAVA
Deixando uma excepo passar atravs do mtodo
Excepes em JAVA
Capturando uma excepo e disparando outra diferente
Uma outra alternativa para tratar uma excepo captur-la e disparar uma excepo diferente, possivelmente uma criada por ns mesmos.
45
46
Excepes em JAVA
Capturando uma excepo e disparando outra diferente
48
12
finnaly
Os blocos try e catch podem conter uma terceira clusula chamada finally que indica o que deve ser feito aps o trmino do bloco try ou de um catch qualquer.
Excepes
http://docs.oracle.com/javase/tutorial/esse ntial/exceptions/index.html
49
50
Multithreading
Criao, utilizao e paragem de threads Paralelismo Sincronismo Partilha
MULTITHREADING
51
52
13
54
55
56
14
57
58
59
60
15
Paralelismo
A necessidade de se fazer vrias coisas simultaneamente, ao mesmo tempo, paralelamente aparece frequentemente na computao. Para vrios programas distintos, normalmente o prprio sistema operacional gere isso atravs de vrios processos em paralelo.
Em um programa s (um processo s), se queremos executar coisas em paralelo, normalmente falamos de Threads.
Formador Ricardo Carvalho
61
62
Paralelismo
(212) Ateno utilizao de Threads!
actualizar a Conta enquanto outra pessoa est depositando um dinheiro. Queramos que uma Thread no pudesse mexer em uma Conta enquanto outra Thread est mexendo nela. No h como impedir o escalonador de fazer tal escolha. Ento, o que fazer?
Partilha
Acesso a Recursos partilhados
Os dados podem ficar corrompidos se acedidos por vrios threads. Utilizar a palavra synchronized para evitar conflitos de recursos partilhados.
Definir um bloco de cdigo como sendo corrido somente por uma Thread de cada vez. (synchronized )
Formador Ricardo Carvalho
63
64
16
Sincronismo
Se um thread invoca um mtodo synchronized, nenhum outro thread pode executar um mtodo sincronizado no mesmo objecto at o primeiro thread completar a sua tarefa.
STREAMS
65
66
Streams
Input e output - streams Classes relativas a streams
utilizar fluxos de entrada (InputStream) e de sada (OutputStream) para toda e qualquer operao, seja ela relativa a um arquivo, a um campo blob da base de dados, a uma conexo remota via sockets, ou at mesmo s entrada e sada padro de um programa.
Formador Ricardo Carvalho
67
68
17
69
70
71
72
18
73
19