A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Orientação a Objetos: herança Professor: Sandro Rigo."— Transcrição da apresentação:

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

2 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

3 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

4 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 {..... }

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

6 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

7 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;}

8 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)<< " ";.... }

9 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

10 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;}

11 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); } };

12 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

13 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); } };

14 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)<< " "; }

15 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); } };

16 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;


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

Apresentações semelhantes


Anúncios Google