Persistência de objetos em arquivo texto usando Java

Slides:



Advertisements
Apresentações semelhantes
|Introdução a Java para programadores Telis. Jogo de Dados simples O jogo é jogado por dois jogadores. Cada jogador faz sua jogada (lança um dado), e.
Advertisements

Programação orientada a objetos
I/O Carlos Bazilio Depto de Ciência e Tecnologia
Sockets Marco Antonio – marcoreis.net Arquiteto de Software Dezembro/2007.
Entrada e Saída Marco Antonio Arquiteto de Software Dezembro/2007.
PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma.
Orientação a Objetos: Encapsulamento e Classificação
Java: Pacotes e Modificadores de Visibilidade
Orientação a Objetos: Modificador Final para Métodos e Classes
Orientação a Objetos: Encapsulamento e Classificação
1 Orientação a Objetos: Herança Alcides Calsavara.
Java: Pacotes e Modificadores de Visibilidade
Identificação Única de Objetos Alcides Calsavara.
Gerenciamento de Estado de Objeto Alcides Calsavara.
De 17 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Aula.
Generalização, Especialização e Conceitos
Iniciação ao Java – Márcio F. Campos
Streams Java.
Polimorfismo e Classes Abstratas Profa
Invocação de Métodos Remotos RMI
Linguagem de Programação II
Wagner Santos C. de Jesus
Excepções e Streams em Java
Classes e objetos Arrays e Sobrecarga
Herança e Polimorfismo
Classes e objetos P. O. O. Prof. Grace.
Estrutura de Dados em Java
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
CRIANDO OBJETOS EM JAVA
Concorrência em Java Threads em Java.
Programação Orientada a Objetos com Java
Nazareno Andrade (baseado no material de Hyggo Almeida)
JAVA Orientação a Objetos
Streams –input e output
Atributos, Encapsulamento e Interface em Java
Aula 3 CoL, atividade Polimorfismo (late binding) Modificador final Modificador abstract Interfaces Herança múltipla Atribuição, Construtores, Destrutores,
Programação I Aula 2 (Métodos)
Paradigmas da Programação – Semestre 1 – Aula 2 Professores: Eduardo Mantovani Fábio de Paula.
Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP.
Arquivos if669 - Introdução à Programação Monitoria de IP Igor Ebrahim (ies) Nicole Sultanum (nbs2) Paulo Borba (phmb)
Orientação a Objetos Parte I
BC-0502 Metodologia e Algoritmos Computacionais Santo André, Abril de Arquivos em Java.
Herança em POO Importante:
Stream – Fluxo I/O Manipulação de arquivos texto
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
Wagner Santos C. de Jesus
1 JAVA I/O (Entrada e Saída em JAVA) Prof. Alexandre Monteiro Recife.
Aula prática 14 Orientação a Objetos – C++ Parte 2
Programação I Aula 6 (Herança, Polimorfismo e Encapsulamento)
Profa. Patrícia A. Jaques
Programação Orientada a Objetos - Java
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Prof. Gilberto Irajá Müller
Orientação a Objetos usando Java
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Java Kickstart, day 2 Semelhanças com linguagem C.
1 Marcio de Carvalho Victorino JAVA. 2 Declaração de Atributos [ ] [transient] [volatile] [static] [final] ; controle de acesso –public, package (default),
Classes Abstratas e Interface
Paradigmas de Programação –Aula 7 Lab 2 Professores: Eduardo Mantovani Fábio Paula Santos.
Herança Modelagem e Programação Orientada a Objetos
Construtores e Destrutores
Trabalho de Persistência para o EPOS. Problema Proposto Implementar no Epos objetos persistentes, ou seja, fazer com que o sistema, ao ser reiniciado,
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Bruno Inojosa MCP .NET Framework
Modificadores Programação II.
Herança.
Arquivos. Os computadores utilizam os arquivos como estruturas de dados para armazenamento de longo prazo de grandes volumes de dados. Dados mantidos.
Desenvolvimento WEB II Professora: Kelly de Paula Cunha.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

Persistência de objetos em arquivo texto usando Java Alcides Calsavara

Objeto em arquivo Um arquivo para cada objeto e um objeto para cada arquivo O arquivo contém o estado do objeto Cada arquivo deve ter um nome único O estado de um objeto é composto de todos os seus atributos e ligações com outros objetos

Interface do cliente O cliente que "cria" um objeto primeiramente cria-o em memória, define seu estado e em seguida torna-o persistente, invocando um método para esse fim (por exemplo, save) O cliente que "reinstancia" o objeto primeiramente cria-o em memória com estado indefinido e em seguida restaura seu estado persistente, invocando um método para esse fim (por exemplo, restore)

Encapsulamento Cada atributo e ligação de um objeto somente deve ser escrito e lido do arquivo pela correspondente classe Cada classe deve implementar um método para ler (por exemplo, restore_state) e outro para escrever (por exemplo, save_state) todos os atributos e associações que define

Mecanismo baseado em herança Toda classe de objetos persistentes deve ser derivada de uma classe que implementa a interface do cliente (por exemplo, PO, com os métodos save e restore) O método save da classe PO invoca o método save_state (definido em PO e sobrecarregado em cada classe da hierarquia) O método restore da classe PO invoca o método restore_state (definido em PO e sobrecarregado em cada classe da hierarquia)

Mecanismo baseado em herança (continuação) O método save_state de uma classe persistente invoca o método save_state de sua superclasse e escreve o seu estado no arquivo O método restore_state de uma classe persistente invoca o método restore_state de sua superclasse e lê o seu estado do arquivo

Persistência de atributos em arquivo texto Cada atributo do objeto é representado como uma substring no arquivo Se o atributo não for do tipo String, uma conversão de tipos é necessária (tanto na escrita como na leitura) Cada substring correspondente a um atributo é finalizada com um marcador (por exemplo, "**")

Bibliotecas de Java java.lang.* java.io.*

Exemplo de escrita try { FileOutputStream fos = new FileOutputStream("Joao.os"); FileDescriptor fd = fos.getFD(); FileWriter fw = new FileWriter (fd); fw.write("Joao da Silva"); fw.flush(); fw.close(); } catch (IOException e) { System.out.println(e); }

Exemplo de leitura try { FileInputStream fis = new FileInputStream("Joao.os"); FileDescriptor fd = fis.getFD( ); FileReader fr = new FileReader (fd); char[ ] buffer = new char[1024]; fr.read(buffer); String os = new String(buffer); System.out.println(os); fr.close( ); } catch (IOException e) { System.out.println(e); }

Identificação Única de Objetos Alcides Calsavara

Propriedades OID : Object Identity Designa um objeto de maneira única (não ambígua) no sistema Constante durante toda a vida do objeto Permite integridade de referência entre objetos Independe dos atributos do objeto (não é chave-primária)

Propriedades Gerada automaticamente pelo sistema quando um objeto é criado O instante de criação do objeto é o próprio instante de criação da OID Não é reutilizável Não contém informação sobre a localização corrente do objeto Pode indicar local e instante de criação

Propriedades É um nome que deve ser resolvido (por um servidor de nomes) para descobrir a localização do objeto (o serviço de persistência que armazena o objeto)

Implementação Numeração seqüencial class OID { private static long contador; private long id; OID( ) { contador ++; id = contador; } ... }

Implementação (cont.) Local e instante de criação class OID { private int hora; private int minuto; private int segundo; private int dia; private int mes; private int ano; String IP; public: OID( ) { ... } }

Classe ObjectState contém todo o estado de um objeto oferece operações básicas para empacotar/desempacotar atributos de tipos básicos (int, long, char, float, ...) objeto de outra classe deve oferecer operações para se empacotar/desempacotar em uma instância de ObjectState. Exemplo: classe Cor

Exemplo classe Veiculo: classe Carro: classe Caminhao: marca : String ano : int cor : { azul, amarelo, verde} classe Carro: numero de passageiros : int classe Caminhao: capacidade de carga : float

Exemplo (cont.) classe Pessoa: associações: nome : String sexo: boolean associações: classe Pessoa e classe Veiculo: uma pessoa é proprietária de n veículos classe Pessoa e classe Carro: um carro transporta n pessoas Devem haver operações para ligar/desligar dois objetos

Exemplo (cont.) classes Veiculo e Pessoa são subclasses de PO cada classe define as operações save_state e restore_state cada classe possui dois construtores: criação: gera OID e chama save_state reencarnação: usa OID fornecida como parâmetro para chamar restore_state o destrutor da classe deve chamar save_state