Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Orientação a Objetos: herança Professor: Sandro Rigo.

Slides:



Advertisements
Apresentações semelhantes
LISTAS Dilvan Moreira, parcialmente baseado em material do prof. Ricardo Campello.
Advertisements

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*
Listas Lineares Estrutura que permite representar um conjunto de dados de forma a preservar a relação de ordem linear. Uma lista linear é composta de nós,
Paulo Marques Hernâni Pedroso
Classes C++ Class nome da classe { private: membros privados
Listas encadeadas Prof. Rosana Palazon.
Programação II Estruturas de Dados
TADS – Tipos Abstratos de Dados
Kleinner Farias e Raphael do Vale
Orientação a Objetos: Modificador Final para Métodos e Classes
2002 LCG/UFRJ. All rights reserved. 1 Tópicos em C++ Claudio Esperança Paulo Roma Cavalcanti.
Tiago Salmito SystemC Tiago Salmito
Listas lineares Listas Lineares Fila Dupla Pilha Fila Saída restrita
Árvores Introdução e Aplicações Árvores de Busca Binária Fundamentos
Prof.: Sergio Pacheco Estruturas de Dados I Prof.: Sergio Pacheco 1.
Vetores, Matrizes e Funções
1 Aula 3 Listas e iteradores (cont.). 2003/2004 Programação Orientada para Objectos 2 ListaDeInt : interface class ListaDeInt { public: typedef int Item;
Aula 8 Polimorfismo.
1 Aula 7 Herança. 2003/2004 Programação Orientada para Objectos 2 Conceitos fundamentais: Herança Polimorfismo Ligação dinâmica.
Insertion Sort.
Listas Encadeadas Raquel O. Prates, Luiz Chaimowicz, Jussara Almeida
© Nabor C. Mendonça Análise e Projeto Orientados a Objeto com UML e Padrões Parte V Implementação (1)
Desenvolvimento de Jogos e Entretenimento Digital
Tipos Agregados Homogêneos e Listas
Programação Orientada a Objetos com Java
Revisão /*======================================================*/
Classes Revisando: –Forma de implementação de estruturas específicas –Atributos (grupos de dados) –Métodos (conjuntos de procedimentos)
Linguagens de Programação
JAVA Orientação a Objetos
UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL INTRODUÇÃO À ALGORITMOS Professora: Fabíola Gonçalves.
INTELIGÊNCIA ARTIFICIAL
Desempenho, Método de Shell, Quicksort
Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação
Linguagem de Programação II
Atributos, Encapsulamento e Interface em Java
Programação I Aula 2 (Métodos)
Argumentos por valor Passagem de valor da variável indicada Não permite alteração de variável indicada Exemplo: int quadrado_de(int ); //protótipo int.
Desenvolvimento de Jogos e Entretenimento Digital
Listas lineares Denise Guliato Faculdade de Computação – UFU
Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula 8: Array Professores: Sandro Rigo Túlio Bender.
Tipos Abstratos de Dados
Estudo de Caso: um editor de documentos
Paulo Borba Centro de Informática Universidade Federal de Pernambuco Classes Abstratas e Interfaces.
Professora Lucélia Oliveira
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática Disciplina: Estrutura de Dados Professor: Cheli dos S. Mendes da Costa Listas.
PCI- Estrutura de Repetição
Implementação Orientada a Objetos – Aula 03
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Regras de escopo Escopo: trecho de codificação no qual o identificador possui significado Escopo de função: identificador válido dentro do trecho de uma.
Java Kickstart, day 2 Semelhanças com linguagem C.
Orientação a Objetos Erick Luis Moraes de Sousa
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Aula Prática 5 Monitoria IP/CC (~if669). Roteiro 1. 1.Recursão 2. 2.Escopo de Variáveis 3. 3.Arrays 4. 4.Strings.
Introdução a Orientação a Objetos
Copyright © 2006 Qualiti. Todos os direitos reservados. Projetar Classes.
Módulo II Capítulo 1: Orientação a Objetos
Paradigmas da Programação – Semestre 1 – Aula 7 Professor: Eduardo Mantovani )
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 15 Funções.
PROGRAMAÇÃO PARA INTERNET Prof.: Jean Carlo Mendes
Implementação Orientada a Objetos – Aula 08 Herança, sobrescrita de métodos e polimorfismo Prof. Danielle Martin Universidade de Mogi das Cruzes
Tipos Compostos Heterogêneos e Tipos Abstratos de Dados
Visual C# (parte 3) Prof. Igor Conrado Alves de Lima – Orientação a objetos, Modificadores de acesso, Lista (List), e tratamento.
USP – ICMC – SSC SSC0300 2º Semestre 2015
Estrutura de Dados Prof. André Cypriano M. Costa
Felipe Nunes Flores – Programa de Educação Tutorial.
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.
Alocação Dinâmica de Memória e Tipo Abstrato de Dados Cristiano Arbex Valle Vinicius Fernandes dos Santos
Herança em Java Curso: Informática Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
Transcrição da apresentação:

Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Orientação a Objetos: herança Professor: Sandro Rigo

OO - Herança Orientação a Objetos: herança Manutenção evolutiva de código: Programação estruturada - equivale a copiar o código fonte e realizar as alterações desejadas - pode gerar erros na codificação, alterando funcionalidades já testadas - requer atualização de bibliotecas e recompilação dos programas

OO - Herança Orientação a Objetos: herança Manutenção evolutiva de código: Programação Orientada a Objetos - equivale a implementar classes com as alterações, usando o mecanismo de herança - evita erros de codificação - não requer atualização de bibliotecas e recompilação dos programas - no caso de otimizações estas são extendidas naturalmente aos programas

OO - Herança Sintaxe Dada uma classe X, declara-se uma classe derivada de X com a sintaxe abaixo: class : Onde pode ser public, private ou protected Por exemplo: class Y : public X {..... }

OO - Herança No exemplo: class Y : public X {..... } Classe X … … Classe Y … …

OO - Herança Exemplo class lista { public: lista(); void insere(int, int); int busca(int); int tamanho(); void inicializa(); private: int vetor[100]; int elementos; }; l

OO - Herança Exemplo lista::lista() { elementos = 0;} void lista::insere(int nro, int pos) { vetor[pos]=nro; elementos++;} int lista::tamanho() {return elementos;} int lista::busca(int posicao) {return vetor[posicao];} void lista::inicializa(){ for (int i=0; i<elementos;i++) vetor[i]=0;}

OO - Herança Exemplo int _tmain(int argc, _TCHAR* argv[]) { lista l1; int i, v; for (i=0; i< 20; i++) l1.insere(i); for (i=0; i< l1.tamanho(); i++) cout << l1.busca(i)<< " ";.... }

OO - Herança Exemplo Melhorias: - inserção ordenada - inicialização com valores - totalização dos valores inseridos Forma: - derivação de classe lista melhorada - criação de nova inserção - criação de nova inicialização - criação de totalização

OO - Herança Exemplo class lista { public:lista(); void insere(int, int); int busca(int); int tamanho(); void inicializa(); int vetor[100]; int elementos; }; lista::lista(){ elementos = 0;} void lista::insere(int nro, int pos) { vetor[pos]=nro; elementos ++;} int lista::tamanho(){return elementos;} int lista::busca(int posicao){return vetor[posicao];} void lista::inicializa() { for (int i=0; i<elementos;i++) vetor[i]=0;}

OO - Herança Exemplo class listamelhorada : public lista { public: listamelhorada():lista(){} void insereordenado(int valor){ int pos=0, val; do{ val=busca(pos); if (val < valor) pos++; }while (val<valor && pos <tamanho()); for (int i=elementos; i >=pos; i--) vetor [i+1]= vetor[i]; insere(valor, pos); } };

OO - Herança Exemplo class listamelhorada : public lista { public: listamelhorada():lista(){} void insereordenado(int valor){ int pos=0, val; do{ val=busca(pos); if (val < valor) pos++; }while (val<valor && pos <tamanho()); for (int i=elementos; i >=pos; i--) vetor [i+1]= vetor[i]; insere(valor, pos); } }; Tratamento do Construtor: usa o da classe original Novo método Métodos e atributos da classe herdada

OO - Herança Exemplo class listamelhorada : public lista { public: listamelhorada():lista(){} void insereordenado(int valor){ int pos=0, val; do{ val=busca(pos); if (val < valor) pos++; }while (val<valor && pos <tamanho()); for (int i=elementos; i >=pos; i--) vetor [i+1]= vetor[i]; insere(valor, pos); } };

OO - Herança Exemplo int _tmain(int argc, _TCHAR* argv[]) { listamelhorada l1; int i, v; for (i=0; i< 20; i++) l1.insere(i, i); for (i=0; i< l1.tamanho(); i++) cout << l1.busca(i)<< " "; l1.insereordenado(4); cout<<endl; for (i=0; i< l1.tamanho(); i++) cout << l1.busca(i)<< " "; }

OO - Herança Exemplo – soma total class listamelhorada : public lista { public: int somatotal; listamelhorada():lista(){ somatotal=0;} void insere(int nro, int pos){ somatotal +=nro; lista::insere(nro, pos); }; int busca_valor(){return somatotal;} void insereordenado(int valor){ int pos=0, val; do{ val=busca(pos); if (val < valor) pos++; }while (val<valor && pos <tamanho()); for (int i=elementos; i >=pos; i--) vetor [i+1]= vetor[i]; insere(valor, pos); } };

OO - Herança Exemplo – soma total listamelhorada l1; int i, v; for (i=0; i< 6; i++) l1.insere(i, i); for (i=0; i< l1.tamanho(); i++) cout << l1.busca(i)<< " "; l1.insereordenado(4); cout<<endl; for (i=0; i< l1.tamanho(); i++) cout << l1.busca(i)<< " "; cout<<endl; cout <<"valor total="<<l1.busca_valor(); cout<<endl;