Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista POO para Redes de Computadores.

Slides:



Advertisements
Apresentações semelhantes
Estruturação de Linguagens (Pascal e C++)
Advertisements

TIPOS ABSTRATOS DE DADOS
Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 5 Criado por Frederick H. Colclough, Colorado Technical University Vetores.
Técnicas de Programação II Revisão TP1 Parte2
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.
Programação Orientada a Objetos*
Paulo Marques Hernâni Pedroso
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique
Prof. Thiago Pereira Rique
Entendendo as definições de classe
List templates Vamos considerar a lista ligada (singly linked list) O objecto da classe slink O objecto da classe slink O objecto da classe slink NULL.
Vamos abordar o exemplo
Programação para Engenharia I
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.
Templates Traduzido de:
2002 LCG/UFRJ. All rights reserved. 1 Tópicos em C++ Claudio Esperança Paulo Roma Cavalcanti.
PROGRAMAÇÃO MODULAR (com uso de subprogramas)
Rafael Pinto Frederico Corrêa
7 Abstração Genérica Unidades genéricas e instanciação.
Instrutor: Nilo Menezes
Aula 8 Polimorfismo.
Revisão da Linguagem C.
Classes e objetos Arrays e Sobrecarga
Classes e objetos P. O. O. Prof. Grace.
Introdução a Computação e Cálculo Numérico
Programação Orientada a Objetos com Java
Aula prática 13 Orientação a Objetos – C++ Parte 1
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista Linguagens de Programação Prof. Miguel Elias Mitre Campista
Linguagens de Programação
Linguagens de Programação
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista Linguagens de Programação Prof. Miguel Elias Mitre Campista
Linguagem de Programação II
Programação I Aula 2 (Métodos)
Paradigmas e Ferramentas de Desenvolvimento de Software – Revisão da linguagem C++ Lúbia Vinhas DPI - INPE.
Tipos Abstratos de Dados
Classes, Objetos, Atributos e Métodos JAVA
+ Curso de C/C++ Aula 10 Instrutor: Luiz Felipe Sotero Material por: Allan Lima
Linguagens de Programação II
Generic Programming Daniel Terzella Leandro Amancio
Pilhas Profa. Nádia Félix.
Programação orientada a objectos em C++
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista Linguagens de Programação Prof. Miguel Elias Mitre Campista
Aula prática 14 Orientação a Objetos – C++ Parte 2
Programação Orientada a Objetos - Java
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista Linguagens de Programação Prof. Miguel Elias Mitre Campista
Linguagens de Programação
Aula Prática 4 Monitoria IP/CC (~if669).
Implementação Orientada a Objetos – Aula 05 Construtores e sobrecarga de métodos Prof. Danielle Martin Universidade de Mogi das Cruzes
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista Linguagens de Programação Prof. Miguel Elias Mitre Campista
Interfaces POO Avançado.
Linguagens de Programação
Linguagens de Programação
Paradigmas de Programação –Aula 7 Lab 2 Professores: Eduardo Mantovani Fábio Paula Santos.
Bruno Inojosa MCP .NET Framework
Prof. Marcos LABORATÓRIO DE PRÁTICA DE PROGRAMAÇÃO 06.
 2000 Prentice Hall, Inc. All rights reserved. 1 Capítulo 8 - Caracteres e Strings Sumário 8.1Introdução 8.2Conceitos Fundamentais de Strings e Caracteres.
Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra 2006/2007 Breve Introdução à Linguagem C.
Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 16 Criado por Frederick H. Colclough, Colorado Technical University Templates (Gabaritos)
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
Módulo II Capítulo 1: Orientação a Objetos
Programação Orientada a Objetos para Redes de Computadores
Linguagem de Programação
Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista POO para Redes de Computadores.
Módulo I Capítulo 7: Funções e Procedimentos William Ivanski Curso de Programação C#
Java Como Programar, 8/E Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1.
Alocação Dinâmica Dilvan Moreira. Objetivos  Entender o que são e como usar:  Gerenciamento de Memória  Alocação Dinâmica em C.
Herança em Java Curso: Informática Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Transcrição da apresentação:

Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Programação em C++ - Template PARTE 2 POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Templates Funções templates –Especificam um conjunto completo de funções (sobrecarregada) relacionadas Cada uma é uma função template especializada Classes templates –Especificam um conjunto completo de classes relacionadas Cada uma é uma classe template especializada POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Funções Templates Funções sobrecarregadas –Operações similares ou idênticas Tipos diferentes de dados void print (int a) { cout << “Inteiro ” << a ; } void print (double a) { cout << “Double ” << a ; } void print (int a) { cout << a; } void print (double a) { cout << a; } Operações similares e tipos diferentes Operações idênticas e tipos diferentes POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Funções Templates Se as operações forem idênticas para cada tipo... –Funções podem ser escritas de maneira mais compacta Funções template void print (T a) { cout << “T ” << a ; }, T pode ser int ou double! POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Funções Template Funções templates –Operações idênticas Tipos diferentes de dados –Template de função única Compilador gera código objeto para cada função utilizada em separado –Checagem de tipo Diferente das macros em C #define min(X, Y) ((X) < (Y) ? (X) : (Y)) POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Funções Template Definição de funções template –Palavra-chave: template –Lista tipos formais de parâmetros em parênteses angulares ( ) Precedido pela palavra-chave class ou typename –class e typename podem ser intercalados template Especifica tipos de: –Argumentos para funções, tipo de retorno de função e variáveis dentro da função POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Primeiro Exemplo Usando Template em C++ POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Primeiro Exemplo Usando Template em C++ POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Primeiro Exemplo Usando Template em C++ POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Templates de Funções Sobrecarregadas Função template sobrecarregada –Outras funções templates com o mesmo nome Parâmetros diferentes –Funções que não são templates com o mesmo nome Argumentos diferentes de função printArray (const T *array, int count) e printArray (const T *array, int count, int lowSubscript) printArray (const T *array, int count) e printArray (const char *array, double count) POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Classe Template Pilha (stack) –Estrutura LIFO (Last-In-First-Out) Classes templates –Programação genérica –Descreve pilha genericamente Instanciação de versão de tipo específico –Tipos parametrizados Requerem um ou mais tipos de parâmetros –Personaliza template de “classe genérica” para formar classe template especializada POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

c

c Classes template são precedidas pelo cabeçalho template

Segundo Exemplo de Programa Usando Template em C++

Funções membro de classe template são também funções template, portanto devem ser precedidas por template O operador de resolução de escopo ( Stack ) é utilizado para associar as funções membro ao escopo da classe template

c

Segundo Exemplo Usando Template em C++ POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Segundo Exemplo Usando Template em C++ POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Terceiro Exemplo Usando Template em C++ Já que as operações realizadas sobre as pilhas de doubles e de inteiros foram as mesmas... –Encher e depois esvaziar a pilha Cria-se uma função template para realizar a mesma sequência de operações independente do tipo dos dados inseridos na pilha POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Terceiro Exemplo Usando Template em C++ POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Terceiro Exemplo Usando Template em C++ POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Terceiro Exemplo Usando Template em C++ POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Classe Template e Parâmetros sem Tipo Classes templates –Parâmetros template sem tipo Argumentos padrão Tratados como const’ s Ex.: template Stack mostRecentSalesFigures; –Declara objeto do tipo Stack pilha –Na classe poderia ser declarado um array a [elements]; Também podem ser usados em funções POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Classe Template e Parâmetros sem Tipo POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Classe Template e Parâmetros sem Tipo POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Classe Template e Parâmetros sem Tipo POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Classe Template e Parâmetros sem Tipo E agora? Posso utilizar uma variável inteira? POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Classe Template e Parâmetros sem Tipo POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Classe Template e Parâmetros sem Tipo E agora? Posso utilizar uma constante inteira? POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Classe Template e Parâmetros sem Tipo POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Classe Template e Parâmetros sem Tipo Classes templates –Parâmetro tipados Tipo padrão Ex.: template –Declara objeto do tipo Stack<> pilha; Não podem ser usados em funções POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Classe Template e Parâmetros sem Tipo Sobrecarregando classes templates –Classe para tipo especializado definido explicitamente Não usa nada da classe template original e pode até implementar suas próprias funções membro –Empregada quando um determinado tipo ou classe exige funções membro específicas –Ex.: template<> class Array { // corpo da defini ç ão de classe }; Objetos da classe Martian exigem um construtor padrão e funções membro próprias

Classe Template e Parâmetros sem Tipo

POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Classe Template e Parâmetros sem Tipo POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Templates e Herança Há muitas maneiras de relacionar templates e herança –Classe template derivada de classe template especializada –Classe template derivada de classe que não é template –Classe template especializada derivada de classe template especializada –Classe não template derivada de classe template especializada POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Exemplo 1 Escreva um programa que implemente a classe template List que retira elementos de uma fila na mesma ordem que foram inseridos (esquema first-in first-out FIFO) ? POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Exemplo 1 POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Exemplo 1 POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Exemplo 1 POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Exemplo 1

POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Exemplo 1 POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Exemplo 2 Escreva um programa que implemente a classe template SonList que herda da classe List do Exemplo 1 e adiciona o método testList, semelhante ao método do segundo exemplo desta aula. ? POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Exemplo 2 POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Exemplo 2 POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Exemplo 2 POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Exemplo 2 POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Exemplo 2 POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Exemplo 2

POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Exemplo 2 POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista

Leitura Recomendada Capítulo 14 do livro –Deitel, “C++ How to Program”, 5th edition, Editora Prentice Hall, 2005 POO para Redes de Computadores - COPPE-PEE/UFRJ Prof. Miguel Campista