laboratório de programação ii - escola politécnicaemoreno/undergraduate/ec/... · paradigma de...

23
Laboratório de programação II Paradigma de orientação a objetos Edson Moreno [email protected] http://www.inf.pucrs.br/~emoreno

Upload: others

Post on 20-Jan-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Laboratório de programação II

Paradigma de orientação a objetos

Edson [email protected]

http://www.inf.pucrs.br/~emoreno

Sumário

Contextualização

Paradigma de orientação a objetos

Contextualização

A construção de um programa implica em

Entendimento do problema

Definição de um modelo de resolução

Formas comuns de elaboração de um modelo de

resolução

Programação estrutural

Fácil de codificar, mas a organização do código fica

prejudicada

Explora 3 estrutura básica: sequência, decisäo e iteração

Programação orientado a objetos

Explora o conceito de camadas, a partir da interação entre

elementos básicos chamados objetos

Contextualização

Programação estruturada vs Programação OO

Paradigma de orientação a

objetos

Definição

Paradigma para o desenvolvimento de software

Basea-se na utilização de componentes individuais

(objetos)

Objetos colaboram para a construção de um

Sistema completo

Colaboração feita por troca de mensagens

Encapsulamento

Herança

Polimorfismo

Paradigma de orientação a

objetos

Etapas envolvidas no desenvolvimento orientado

a objetos

Análise orientada a objetos

Projeto orientado a objetos

Programação orientada a objetos

Paradigma de orientação a

objetos

Etapas envolvidas no desenvolvimento orientado

a objetos

Análise orientada a objetos

Processo de construção de modelos de domínio do

problema

Processo pelo qual se identifica e especifica um conjunto

de objetos

Processo no qual a interação entre os objetos é definido

Projeto orientado a objetos

Programação orientada a objetos

Paradigma de orientação a

objetos

Etapas envolvidas no desenvolvimento orientado

a objetos

Análise orientada a objetos

Projeto orientado a objetos

Processo de geração de especificação detalhada

Programação orientada a objetos

Paradigma de orientação a

objetos

Etapas envolvidas no desenvolvimento orientado

a objetos

Análise orientada a objetos

Projeto orientado a objetos

Programação orientada a objetos

Explora os conceitos de classes, objetos, herança, etc

Paradigma de orientação a

objetos

Paradigma baseado em pilares

Entidades

Herança

Polimorfismo

Paradigma de orientação a

objetos

Paradigma baseado em pilares

Entidades

Algo que tenha suas características e funções no mundo

real

Em programação a objetos, nos referimos a entidades

como objetos

Um objeto consiste em um conjunto de operações

encapsuladas e um estado que grava e recupera os efeitos

destas operações

Operações encampsuladas são definidas por métodos

Estado é mantido por atributos de um objeto

Classe define as características de coleção de um objeto

Descrevem métodos e atributos de objetos pertencentes

a classe

Cada objeto é um encapsulamento de seu estado interno,

mensagens e métodos

Paradigma de orientação a

objetos

Paradigma baseado em pilares

Entidades

Herança

Permite a definição de hierarquia de classes

Um “subclasse” pode herdar a definição de componentes

de uma classe pai

Entende-se componentes por métodos, atributos

Polimorfismo

Paradigma de orientação a

objetos

Paradigma baseado em pilares

Entidades

Herança – Tipos (De atributo e método)

A classe que herda é

chamada de subclasse.

A classe que definiu o

comportamento é chamada

de superclasse

Polimorfismo

Paradigma de orientação a

objetos

Paradigma baseado em pilares

Entidades

Herança – Tipos (De relacionamento)

Polimorfismo

Paradigma de orientação a

objetos

Paradigma baseado em pilares

Entidades

Herança

Facilita o reuso

Não há limite na

hierarquização

Polimorfismo

espec

iali

zaçã

o

gen

eral

izaç

ão

Paradigma de orientação a

objetos

Paradigma baseado em pilares

Entidades

Herança

Pode ter mais de uma superclasse

Polimorfismo

Paradigma de orientação a

objetos

Paradigma baseado em pilares

Entidades

Herança

Polimorfismo

Propriedade que permite o envio de uma mensagem para n

entidades

Cada entidade trata a mensagem da forma mais apropriada

Paradigma de orientação a

objetos

Paradigma baseado em pilares

Entidades

Herança

Polimorfismo

Polimorfismo de inclusão

Objetos de uma subclasse podem ser utilizados em uma

superclasse

1. /* Código polimórfico */

2. void main( ) {

3. Elipse e;

4. Circulo c;

5. imprimir(e);

6. imprimir(c);

7. }

8. void imprimir(Elipse eli) {.... }

Paradigma de orientação a

objetos

Paradigma baseado em pilares

Entidades

Herança

Polimorfismo

Polimorfismo paramétrico (templates)

A partir da definição de uma função, permite trabalhar

genericamente1. /* Definição da Classe */

2. template class pilha <Tipo T> {

3. /* Estrutura de dados ... */

4. void empilhar( T );

5. T desempilhar( );

6. }

7. /* Utilização no cód. Cliente */

8. pilha<int> pilhaInt;

9. pilha<float> pilhaFloat;

Paradigma de orientação a

objetos

Paradigma de orientação a

objetos

Vantagens do emprego de OO

Facilita a organização do código

Facilita o reuso de código

Modelos permite maior proximidade com o mundo

real

Dados descritos de maneira mais precisa

Mais fácil de entender e manter

Pequenas mudanças de restrições ou requisites

Tratadas de forma menos drástica quando comparada a

outras formas

Paradigma de orientação a

objetos

Exemplo de linguagens que empregam OO

Java

C#

C++

Python

Object pascal (Delphi)

Objective C

VB .net

Ruby

Paradigma de orientação a

objetos

Exemplo de codificação c++