Professional Documents
Culture Documents
Universidade do Contestado
Agenda
Introduo ObjectOutputStream ObjectInputStream Grficos de Objetos writeObject e readObject Como a herana afeta na serializao
Introduo
Introduo
A serializao significa:
Salve este objeto e todas as suas variveis de instncias
ObjectOutputStream e ObjectInputStream
ObjectOutputStream e ObjectInputStream
Objetos so serializados a partir de dois mtodos:
ObjectOutputStream.writeObject() serializa e escreve em um stream ObjectInputStream.readObject() ler o stream e desserializa o objeto
As classes ObjectOutputStream e ObjectInputStream do pacote java.io.* so usadas para encapsular classes de nvel mais baixo, tais como, FileOutputStream e FileInputStream.
Prof. Marcos Andr Pisching, M.Sc. 6
ObjectOutputStream e ObjectInputStream
Exemplo:
Continua
Prof. Marcos Andr Pisching, M.Sc. 7
ObjectOutputStream e ObjectInputStream
Exemplo:
Grficos de Objetos
Grficos de Objeto
O que significa realmente salvar um objeto?
Se as variveis de instncia forme todas tipos primitivos, bem simples. Mas e se as variveis de instncia forem referncias a objetos?
Salvar a referncia no faz sentido. O Java cuida de serializar os objetos e seus valores. Ou seja, quando um objeto serializado, o Java salva todo o grfico do objeto, desde que, as classes envolvidas sejam serializadas tambm.
10
Continua
Prof. Marcos Andr Pisching, M.Sc. 11
Continua
Prof. Marcos Andr Pisching, M.Sc. 12
Continua
Prof. Marcos Andr Pisching, M.Sc. 13
Resultado da execuo:
14
15
16
Coleira no serializvel
Continua
Prof. Marcos Andr Pisching, M.Sc. 17
Tentou acessar a coleira de um objeto que foi recuperado do arquivo, porm esta foi declarada como transiente, e o objeto Coleira de Cachorro no momento null.
18
19
writeObject e readObject
20
writeObject e readObject
Mtodos privados que podem ser implementados na classe. Quando implementados so chamados automaticamente durante o processo de serializao/des-serializao. Estes mtodos permitem interferir no processo de serializao/des-serializao Eles no esto definidos na interface serializable.
Fazem parte de um contrato de callback especial do sistema de serializao.
21
writeObject e readObject
private void writeObject(ObjectOutputStream os) { //cdigo para salvar variveis de objetos no //serializvel }
private void readObject(ObjectInputStream os) { //cdigo para ler o estado do objeto, criar um //novo objeto e atribu-los as referncias //no serializveis }
22
Continua
Prof. Marcos Andr Pisching, M.Sc. 23
24
Serializao
Marcos Andr Pisching mpisching@gmail.com