Paulo J. Azevedo Departamento de Informática Universidade do Minho

Slides:



Advertisements
Apresentações semelhantes
Análise e Projeto Orientado a Objetos
Advertisements

Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.
Programação orientada a objetos Introdução Paradigma de objetos e mensagens Classes e instâncias.
ABSTRAÇÃO processo de representar um grupo de entidades através de seus atributos comuns feita a abstração, cada entidade particular (instância) do grupo.
Paulo Marques Hernâni Pedroso
Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capitulo 3 – Introdução às classes Capitulo 3 Introdução às classes.
Capítulo 1 Introdução.
Identificando requisitos
Orientação por Objectos > Modelo de Processo OO > Identificação de Classe e Objectos Aula 12.
Perspectivas baseadas em procedimentos e orientadas por objectos Conceitos principais: Encapsulamento, Herança, Polimorfismo (Encapsulation, Hierarchy,
Unified Modeling Language (UML) - Modelação da Arquitectura -
Bases de Dados 2 José Júlio Alferes Departamento de Informática
Diagramas de Seqüência
Orientação a Objetos: Encapsulamento e Classificação
Orientação a Objetos: Encapsulamento e Classificação
Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.
O Paradigma de Orientação a Objetos
Projeto de Software Orientado a Objetos
Introdução ao paradigma de programação: Orientado a Objetos
Professor: Rogério Lopes Disciplina: Engenharia de Software II Fortium Sistemas da Informação Engenharia de Software II.
Introdução à Programação Um enfoque orientado a construção de modelos em programas baseados em objetos Gustavo Motta Departamento de Informática - UFPB.
Programação Orientada a Objetos
Programação orientada a objetos com Java
Objetivo: compreender e aplicar um modelo sequencial
Objetivo: compreender e aplicar um modelo sequencial
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Programação Orientada para Objectos
Programação Orientada para Objectos
Classes & Objectos em JAVA5
Métodos Programação II 1 Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre Elementos de Classe, class wrappers.
Métodos Programação II 1 Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre Classes Abstractas.
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação Orientada a Objetos
Orientação a Objetos.
TÉCNICAS DE PROGRAMAÇÃO II
Diagramas de Seqüência
Copyright Marcos L. Chaim 2005 Princípios de Projeto de Software Orientado a Objetos Segundo Semestre 2005 Marcos L. Chaim ACH Turma 02 EACH – USP.
Princípios de Orientação à Objetos
Diagrama de Classes e Colaboração
1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 12. Estados Objetivo: compreender a notação do diagrama de estados.
Introdução à Ciência da Computação-2 Fabio Nakano – Por favor colocar no assunto: ICC2 - – Bloco A-1, segundo andar,
Singleton e Adapter Professor: Nazareno Andrade
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala 1.
. Smalltalk HISTÓRICO . Década de 60 – POO . Dynabook (Alan Kay)
Gestão de Redes e Sistemas Distribuídos Teresa Maria Vazão Fevereiro 2003 IST/INESC Contactos:IST/Tagus-Park Tel:
Gestão de Redes e Sistemas Distribuídos Teresa Maria Vazão Julho 2005 Ferramentas de Gestão Plataformas de Gestão IST/INESC-ID Contactos: IST/Tagus-Park.
Análise e Projeto de Sistemas UNIVERSIDADE DE CRUZ ALTA Ciência da Computação 2010/1.
Métodos de Construção de Software: Orientação a Objetos
Teste dos Caminhos Básico
Tipos Abstratos de Dados
Orientação a Objetos e Java Graduação em Ciência da Computação
Orientação a Objetos Parte I
Programação Orientada à Objetos
Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri
Herança em POO Importante:
SISTEMAS DISTRIBUIDOS Aula 4
PROGRAMAÇÃO ORIENTADA A OBJETOS
Ferramentas para Orientação a Objetos
Análise e Projeto de Sistemas
Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros
Introdução a Programação Orientada a Objetos
Conteúdos Programáticos Criação de classes em VB Criar Criar Manipular Manipular Tipos de acesso Tipos de acesso Constructores Constructores.
Introdução a Orientação a Objetos
Diagrama de Objetos.
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Características Cor Combustível Num_Portas Potencia Comportamentos Acelerar Feiar Acender farol Dar seta Buzinar Características Cor Combustível Num_Portas.
Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin/ Marcia Bissaco Universidade de Mogi das Cruzes
Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos.
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.
Transcrição da apresentação:

Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre Paulo J. Azevedo pja@di.uminho.pt Departamento de Informática Universidade do Minho Métodos Programação II

Métodos Programação II Objectivos Introduzir o novo paradigma (disciplina) de programação orientado aos objectos. Programação pela definição de unidades computacionais representativas de entidades do mundo real (do problema a resolver). Programação desenvolve-se em torno dos dados em vez de se concentrar apenas nos procedimentos. Programar = definir objectos. Computação = interacção entre objectos. Programa = conjunto de classes, são os templates dos nossos objectos. Programação orientada aos objectos em JAVA5 (jdk1.5) Métodos Programação II

Avaliação e Bibliografia Dois testes teóricos (ou exame) Um projecto prático (em grupo) Nota Final = 0.6 x componente_teórica + 0.4 x componente_prática Créditos mínimos em ambas as componentes = 10 valores! JAVA5 e Programação por Objectos F. Mário Martins, Editora FCA, Série Tecnologias de Informação Programação Orientada aos Objectos em JAVA5 F. Mário Martins, Notas Pedagógicas, revisão de 2007 Notas Teóricas MPII Paulo Azevedo (estes acetatos apresentados nas aulas) Notas colocadas na página da disciplina Métodos Programação II

Porquê programação orientada aos objectos ? Modularidade Reutilização Abstracção (Tipos abstractos de Dados) Métodos Programação II

Métodos Programação II Módulos Módulo como abstracção procedimental Programação continua orientada aos procedimentos O que fazer sobre a utilização dos dados? Métodos Programação II

Interdependência entre módulos Continua descurada a questão da privacidade dos dados! É necessário garantir a independência do módulo em relação ao contexto. Isto é, preservar a autonomia do módulo. Necessidade da abstracção dos dados. Métodos Programação II

Abstracção e Data Hiding Módulo: define uma estrutura de dados interna. com procedimentos que constituem o único código com acesso às suas variáveis internas. Estes procedimentos não acedem a outras variáveis que não façam parte do módulo. Data Hiding: estrutura de dados local. Procedimentos: serviços disponibilizados. Temos, finalmente, abstracção de dados em vez de abstracção de controlo Métodos Programação II

Métodos Programação II Encapsulamento Módulos são “cápsulas” de software Escondem (do exterior) detalhes dos dados e de implementação. Verdadeiramente reutilizáveis e autónomas. São abstracções de dados Cada módulo tem uma interface: i.e. conjunto de métodos invocáveis do exterior, e uma implementação. Métodos Programação II

Métodos Programação II Objecto Unidade computacional básica na concepção de software. Concentra as propriedades anteriormente apresentadas, nomeadamente: Independência de contexto (permite reutilização) Abstracção de dados (garante abstracção) Encapsulamento (garante protecção) Modularidade (permite composição das partes) É a representação abstracta de uma entidade autónoma: Identidade única Conjunto de atributos que definem o estado do objecto Conjunto de operações (de uso interno e externo) que definem o comportamento do objecto Métodos Programação II

Métodos Programação II Encapsulamento Objecto como entidade estanque contendo uma estrutura de dados interna e privada. Exemplo de um objecto representativo de um número Complexo, apresentando-se a sua estrutura e comportamento. Métodos Programação II

Métodos Programação II Mensagens Em POO computação é obtida por interacção entre objectos através de mensagens. Interacção entre objectos através de mensagens resulta a computação e respectivas transições dos estados. O objecto A envia uma mensagem a B durante a execução do seu método a1(). O objecto B executa o método b1(). A espera que B envie o resultado de b1() e só após a recepção deste resultado finaliza a execução do seu próprio método a1(). Métodos Programação II

Métodos Programação II Tipos de Mensagens Alteração de estado sem retorno: receptor.mensagem(); receptor.mensagem(a1,a2,…,na); Mensagens como interrogações: Resultado = receptor.mensagem(); Resultado=receptor.mensagem(a1,a2,…,na); Métodos Programação II

Métodos Programação II Exemplo stack1 = new Stack(); int tam = stack1.size(); Elem = stack1.top(); stack1.push(12); A independência das mensagens em relação aos métodos permite um grau de abstracção interessante. Podemos ter um conjunto diferente de objectos a reconhecer a mesma mensagem mas a executar o seu próprio método (implementação) Métodos Programação II

Métodos Programação II Instâncias & Classes Para garantir que todos os objectos do mesmo tipo tenham a mesma estrutura e o mesmo comportamento recorremos a um objecto especial: classes Servem para: Conter a estrutura e comportamento dos objectos do mesmo tipo, Criar os respectivos objectos particulares (com o mesmo comportamento e estrutura). Objectos são então instâncias de uma classe. A classe garante coerência entre objectos criados a partir de si. Métodos Programação II

Métodos Programação II Exemplo Exemplo em JAVA: ponto1 = new Ponto2D(); ponto2 = new Ponto2D(); cx = ponto1.cx(); cy = ponto1.cy(); ponto1.incX(1); ponto1.incY(2); ponto2.incX(3); Métodos Programação II