Orientação a Objetos e Java Graduação em Ciência da Computação Paulo Borba © Centro de Informática, UFPE.

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

I/O Carlos Bazilio Depto de Ciência e Tecnologia
Java e OO – Isso é só um roteiro de aula
Sistemas distribuídos
Eventos Marco Antonio, Arquiteto de Software – TJDF Novembro/2005
Sockets Marco Antonio – marcoreis.net Arquiteto de Software Dezembro/2007.
Prof. Thiago Pereira Rique
Padrão de Projeto Iterator
Java: Pacotes e Modificadores de Visibilidade
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.
Tutorial I: Criando a interface de uma aplicação em Java
Paulo J. Azevedo Departamento de Informática Universidade do Minho
Mapeamento Objeto-Relacional Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Classes e objetos P. O. O. Prof. Grace.
Componentes GUI GUI – Grafical User Interface – São construídas a partir de componentes GUI chamados de controles ou widgets (windows gadgets – engenhocas.
Singleton e Adapter Professor: Nazareno Andrade
JAVA Orientação a Objetos
Integração com Banco de Dados
Interface Gráfica (material da Profa. Luciana Nedel - www. inf. pucrs
José Pacheco A. Prado. Você pode definir diferentes cursores em seus projetos. Para isto basta utilizar a função setCursor.
Introdução à Programação Orientada a Objetos com Java
Desenvolvimento Orientado a Componentes e Reuso
Paulo Borba Centro de Informática Universidade Federal de Pernambuco Classes Abstratas e Interfaces.
Aula 2 – Primeiros Passos com a arquitetura Web Servidor
Orientação a Objetos e Java Graduação em Ciência da Computação
Pilhas Profa. Nádia Félix.
Programação Orientada à Objetos
BC-0502 Metodologia e Algoritmos Computacionais Santo André, Abril de Arquivos em Java.
Linguagem II Exceções.
Aula 2 – Primeiros Passos com a arquitetura Web Servidor Instituto Metodista Izabela Hendrix Curso de Tecnologia em Análise e Desenvolvimento de Sistemas.
Orientação a Objetos Parte II
POO Interface Gráfica - Swing
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
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.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota (com material da Qualiti Software Process)
Programação para Web Unidade 06 – Java Beans e BDs Prof.: Henrique Santos.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Classes Abstratas e Interface
Linguagem de Programação JAVA
RMI Objetos Distribuídos Luiz C. D´oleron SCJP
Construtores e Destrutores
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
JavaServer Faces Rapid Web Application Development em Java Ricardo Cavalcanti Jobson Ronan
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.
Socket em Java.
Faculdade Pitágoras – Campus Fadom.  Display  Cada MIDlet tem UMA referência para um objeto Display  Esse objeto pode recuperar informações sobre.
Bruno Inojosa MCP .NET Framework
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Orientação a Objetos e Java Graduação em Ciência da Computação Paulo Borba © Centro de Informática, UFPE.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Modificadores Programação II.
Copyright 2000, Departamento de Informática, UFPE. Todos os direitos reservados sob a legislação em vigor. Orientação a Objetos e Java.
Vendo o código como um bolo... com várias camadas! Interface com o usuário (GUI) Comunicação Negócio Dados.
Orientação a Objetos e Java Especialização em Tecnologias da Informação Paulo Borba © Centro de Informática,
Programação Gráfica em Java Introdução
Feapa Prof Osiel Marlon Disciplina: Engenharia de Software 2009 Curso: Sistemas de Informação.
Orientação a Objetos e Java Graduação em Ciência da Computação Alexandre Mota © Centro de Informática, UFPE.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
ALUNO: RONI FABIO BANASZEWSKI Model-View-Controller.
Polimorfismo com Interfaces Pacotes em Java Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB.
Strings e Arrays Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de Informática,
Herança e Polimorfismo Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de Informática,
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Edson Susumu Asaga JavaBeans Edson Susumu Asaga
Transcrição da apresentação:

Orientação a Objetos e Java Graduação em Ciência da Computação Paulo Borba © Centro de Informática, UFPE

Java Beans Objetivo Depois desta aula você será capaz de desenvolver classes mais reusáveis, definindo-as como componentes de software que podem inclusive ser utilizados para programação visual.

Java Beans Leitura prévia essencial Capítulo 13 do livro Thinking in Java (de Bruce Eckel)

Componentes de Software Classes com características especiais para –facilitar reuso de software –possibilitar programação visual com ambientes de desenvolvimento Padrões definem estas características: –Java Beans –ActiveX Ambientes de desenvolvimento visuais são baseados nestes padrões

Tipos de Componentes Componentes visuais –São representados graficamente –Classes para construção de interfaces gráficas: botões, menus, rótulos, áreas de texto, etc. Componentes não-visuais –Não são representados graficamente –Classes para acesso a banco de dados, enviar , e para realizar qualquer outro serviço reusável (a classe Fachada, por exemplo)

Características dos Componentes (Java Beans) Além de atributos, métodos e construtores, os beans têm as seguintes características: –Propriedades –Introspecção –Comunicação por Eventos –Customização –Persistência

Propriedades “Atributos” que podem ser configurados para mudar a aparência ou o comportamento de um bean: –botão habilitado ou não, cor do botão, etc. –detalhes da conexão com um banco de dados, nível de transação adotado pela conexão –mensagem de um painel de controle, habilitações dos botões de um painel de controle

Exemplo: Painel de Controle InserirLimparConsultar Mensagem do Painel... Pode ser reusado para construir várias telas...

Padrões para Propriedades public class Controle extends Panel... private Label labelMensagem = new Label(); public void setMensagem(String newMensagem) { labelMensagem.setText(newMensagem); } public String getMensagem() { return labelMensagem.getText(); } Métodos set e get

Padrões para Propriedades private Button botaoConsultar = new Button(); public void setConsultarHabilitado(boolean b) { botaoConsultar.setEnabled(b); } public boolean isConsultarHabilitado() { return botaoConsultar.isEnabled(); } Métodos set e is para booleanos

Tipos de Propriedades Simples, como as ilustradas Ligadas, que avisam a outros objetos que foram modificadas Restringidas, cujos modificações são autorizadas por outros objetos Indexadas, que descrevem valores múltiplos Pequenas variações nos padrões apresentados

Introspecção Capacidade de oferecer informações sobre si mesmo: –O bean tem métodos para oferecer informações sobre seus métodos, propriedades e eventos Utilizada pelos ambientes de programação visual Implementada através de tipos do pacote java.beans : –Introspector (informações geradas automaticamente) –BeanInfo (maior controle sobre as informações)

Padrões para Introspecção public class ControleBeanInfo extends SimpleBeanInfo { public PropertyDescriptor[] getPropertyDescriptors() {... PropertyDescriptor _consultarHabilitado = new PropertyDescriptor("consultarHabilitado", beanClass, "isConsultarHabilitado", "setConsultarHabilitado"); _consultarHabilitado.setDisplayName ("consultarHabilitado"); _consultarHabilitado.setShortDescription ("Indica se o botão consultar está habilitado"); PropertyDescriptor[] pds = new PropertyDescriptor[] {_consultarHabilitado,...}

Comunicação por Eventos Um modelo de comunicação entre objetos alternativo a chamada de métodos Assíncrono –publisher/subscriber –notifier/listener Multicast Construído usando o modelo de chamada de métodos

Usando os Serviços de um Bean Bean Chamada de método Objeto Listener1 Listener2 Listener3 Notificação de evento Inscrição para ouvir evento

Padrões para Listeners public interface ControleListener extends EventListener { public void botaoInserirPressionado (BotaoPressionadoEvent e); public void botaoConsultarPressionado (BotaoPressionadoEvent e); public void botaoLimparPressionado (BotaoPressionadoEvent e); }

Padrões para Definição de Eventos public class BotaoPressionadoEvent extends EventObject { public BotaoPressionadoEvent(Object source) { super(source); }

Padrões para Inscrição e Remoção de Listeners public class Controle extends Panel... private transient Vector contListeners; public synchronized void addControleListener(ControleListener l) { Vector v; if (contListeners == null) v = new Vector(2); else v = (Vector) contListeners.clone(); if (!v.contains(l)) { v.addElement(l); contListeners = v; }

Padrões para Notificar Eventos void fireBotaoConsultarPressionado (BotaoPressionadoEvent e) { if (contListeners != null) { Vector listeners = contListeners; int count = listeners.size(); for (int i = 0; i < count; i++) { Object o = listeners.elementAt(i); ControleListener l; l = (ControleListener) o; l.botaoConsultarPressionado(e); } Invocado pelo actionPerformed do painel!

Customização As propriedades de um bean podem ser configuradas de forma mais amigável implementando tipos do pacote java.beans : –PropertyEditor, editor de propriedade especial (configura uma propriedade) –Customizer, customizador de bean (configura as propriedades de um bean) O ambiente de programação visual utiliza estes recursos, caso existam

Persistência As propriedades de um bean podem ser armazenadas de forma persistente Persistência default: public class Controle extends Panel implements Serializable {... } Atributos qualificados como “transient” não são gravados!

Persistência Persistência específica, implementando Externalizable : void writeObject(ObjectOutputStream oos) throws IOException { oos.defaultWriteObject(); } void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException { ois.defaultReadObject(); }

Java Beans Resumo Componentes de software e o padrão Java Beans Propriedades: métodos set e get Introspecção: BeanInfo e Introspector Comunicação por eventos: EventListener e EventObject Customização: PropertyEditor e Customizer Persistência: Serializable e Externalizable

Java Beans Leitura adicional Tutorial sobre Java Beans em ex.html ex.html Site de Java Beans em Pacote java.beans da API de Java em