Treinamento Plataforma Java Módulo 2 -

Propaganda
Linguagem de Programação 1
Prof. Marcos Miguel - MBI
[email protected]
Parte 2
segunda-feira, 5 de novembro de 12
2
¨
¨
Uma exceção é um problema
que surge durante a execução
de um programa
Pode ocorrer por diversos
motivos:
¤
¤
¤
¨
Estrutura try catch/finally
Um usuário entrou dados
inválidos
Um arquivo que precisa ser
aberto não pode ser encontrado
A conexão de rede foi perdida
no meio de comunicação, ou a
JVM não tem mais memória
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
3
¨
Exemplo
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
4
¨
Exemplo
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
5
¨
Instrução throw
¤ Indica
que uma
exceção ocorreu
¤ Utilizada para lançar
exceções
¤ O operando de um
throw pode ser de
qualquer classe
derivada da classe
Throwable
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
Java - Exceções
6
¨
Hierarquia de herança das exceções
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
Serialização
7
¨
Serialização de objetos é o processo de salvar o estado de um
objeto em uma sequência de bytes, permitindo um processo de
reconstrução desses bytes em um objeto vivo, em algum momento
futuro
¨
Regras ¤
¤
¤
¤
as classes precisam implementar a interface Serializable para que os
seus objetos possam ser serializados
modificador Transient: ignora o objeto ou variável durante a
serialização
se a superclasse implementar Serializable, então as suas subclasses
também a implementam automaticamente
se a superclasse não implementar Serializable, então quando um objeto
da subclasse for deserializado o construtor da superclasse será
executado
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
Serialização
8
¨
Exemplo
¤ Serializando
objeto
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
Serialização
9
¨
Exemplo
¤ Deserializando
objeto
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
Serialização
10
¨
Objeto transient
¤ Quando
uma propriedade é marcada como transient
ela é ignorada na serialização
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
Serialização
11
¨
Serialização e Herança
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
Serialização
12
¨
Deserialização e Herança
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
Serialização / IO
13
¨
M2E4: (Exercício de
fixação)
¤ Utilizando
o modelo de
classe sugerido serialize
os objetos:
n Revista
n Livro
n Autor*(lista
de autores)
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
Java - IO
14
¤ Oferecem
recursos para facilitar a manipulação de
dados durante o processo de leitura ou gravação
¤ bytes sem tratamento
¤ caracteres Unicode
¤ dados filtrados de acordo com certo critério
¤ dados otimizados em buffers
¤ leitura/gravação automática de objetos
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
Java - IO
15
¨
A classe File, que representa arquivos e diretórios
¤ Objetos
n
n
que implementam entrada e saída
InputStream e OutputStream, Readers e Writers
Compressão com GZIP streams
¤ Oferece
abstrações que permitem ao programador
¤ lidar com arquivos, diretórios e seus dados de uma
maneira independente de plataforma
¤ File, RandomAccessFile
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
Java - IO
16
¨
Classe File
¤
Métodos
String getAbsolutePath()
n String getParent(): retorna o diretório (objeto File) pai
n boolean exists()
n boolean isFile()
n boolean isDirectory()
n boolean delete(): tenta apagar o diretório ou arquivo
n long length(): retorna o tamanho do arquivo em bytes
n boolean mkdir(): cria um diretório com o nome do arquivo
n String[] list(): retorna lista de arquivos contido no diretório
n
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
Java-IO
17
¨
Exemplo
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
Java - IO
18
¨
IO – Criação e
gravação de arquivo
¤ FileWriter
¤ Principais
Métodos:
n Write
: escreve no
arquivo bytes, Strings,
etc.
n close: fecha o stream
(essencial)
n flush(): esvazia o buffer
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
Java IO
19
¨
PrintWriter ¤ Principais
métodos:
n Print:
Imprime no
arquivo
n close: fecha o
stream
n flush(): esvazia o
buffer
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
Java - IO
20
¤ FileReader
e
BufferedReader
n A
maneira mais
eficiente de ler um
arquivo de texto é
usar FileReader
decorado por um
BufferedReader
n Principais Métodos:
n
n
Readline: lê a linha
corrente
Close: Fecha o
arquivo
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
Java - IO
21
¨
M2E5: (Exercício de fixação)
¤ Utilizando
o arquivo fornecido “publicacoes.txt” e os
recursos de IO apresentados:
n Leia
o arquivo e popule a lista de publicações e autores
n O arquivo esta no formato texto padrão ANSI com
delimitadores “|” (pipeline), Carriage return/Line feed ao
final de cada registro, e segue o seguinte formato:
id|isbn|titulo|nroEdicao|descricao|autor|editora|
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
Java - String
22
¨
Os objetos de tipo String são imutáveis, ou seja o
valor de uma String não pode ser modificado,
apenas referenciado:
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
Switch, Case e Default
23
¨
Escolher entre múltiplos
caminhos alternativos
¨
Exemplo
¤ Sintaxe
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
Enumerados
24
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
HashMap
25
¨
¨
¨
HashMap é uma das
principais implementações
da interface Map.
Permite a inserção de
chaves e valores
HashMap é bem similar à
classe Hashtable, com a
diferença que HashMap
não é sincronizada
(ambiente de múltiplas
threads) e permite valores
e chaves null
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
HashMap
26
¨
Métodos
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
Padrão de Projeto
27
¨
Façade
¤ “Fornecer
uma interface
para um conjunto de
interfaces em um
subsistema
¤ Define uma interface de
nível mais alto que
torna o subsistema mais
fácil de ser usado”
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
Padrão de Projeto - Façade
28
¤ Benefícios:
n Isola
os clientes dos componentes do subsistema reduzindo o
número de objetos com os quais o cliente tem que lidar
n Promove um acoplamento fraco entre o subsistema e seus
clientes. O acoplamento fraco permite variar os componentes
do subsistema sem afetar os seus clientes
n Não impede as aplicações de utilizarem as classes do
subsistema caso necessitem
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
Padrão de Projeto - Façade
29
¨
Exemplo
Sem façade
Com façade
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
Padrão de Projeto - Façade
30
¨
Exemplo em Java
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
Padrão de Projeto - Façade
31
¨
Exemplo em Java
Antes Padrão
segunda-feira, 5 de novembro de 12
Prof. Marcos Miguel - MBI
Depois Padrão
Bibliografia
32
¨
¨
¨
H.M. Deitel, P.J. Deitel Java Como Programar 8ª Edição. Bookman, 2008
PENDER, Tom. UML a Bíblia. Rio de Janeiro: Campus, 2004
Gamma, E.; Helm, R; Johnson, R; et al. Padrões de Projeto: Soluções
reutilizáveis de software orientado a objetos, Bookman, 2000
Prof. Marcos Miguel - MBI
segunda-feira, 5 de novembro de 12
Download