Linguagem de programa o iii programa o orientada a objetos unidade i
Download
1 / 42

Linguagem de Programação III Programação Orientada a Objetos Unidade I - PowerPoint PPT Presentation


  • 90 Views
  • Uploaded on

Linguagem de Programação III Programação Orientada a Objetos Unidade I. Prof. Hugo Sampaio São Luís, MA. O que é POO ?. A POO ( Programação Orientada a Objeto ), baseia-se no uso de objetos ( tudo é tratado como um objeto ) definidos em sua respectiva classe.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Linguagem de Programação III Programação Orientada a Objetos Unidade I' - rane


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Linguagem de programa o iii programa o orientada a objetos unidade i

Linguagem de Programação IIIProgramação Orientada a ObjetosUnidade I

Prof. Hugo Sampaio

São Luís, MA


O que poo
O que é POO ?

  • A POO (Programação Orientada a Objeto), baseia-se no uso de objetos (tudo é tratado como um objeto) definidos em sua respectiva classe.

  • Objetos possuem propriedades e características e interagem entre si por meio de mensagens.

Porque POO ?.


O paradigma da poo
O Paradigma da POO

  • A programação orientada a objetos surge para possibilitar aos desenvolvedores :

    • Velocidade na prototipagem de sistemas;

    • Ambiente de desenvolvimento perfeito;

    • Reutilização de códigos;

    • Modularidade no desenvolvimento

    • Abstração do mundo real.


O paradigma da poo1
O Paradigma da POO

  • A POO propõe um certo relacionamento entre dados e códigos que surge como representação fiel dos objetos do mundo real.

  • Desta forma, é importante observar que na POO dados e código, caminham juntos surgindo a idéia de um único corpo. Assim os “Objetos encapsulam dados e códigos”

  • Porém, é importante lembrar que embora tratados de forma igual, apenas os códigos de um objeto pode manipular os seus dados.


Objetivo da poo
Objetivo da POO

  • Alem de um desenvolvimento mais fácil, a POO tem como objetivo :

  • Combinar dados e códigos encapsulados em uma entidade que representa um determinado tipo na abstração das informações no contexto do desenvolvimento.


Objetivo da poo1
Objetivo da POO

  • A POO propõem uma nova maneira de conceber programas, pela introdução de novos conceitos e características, tais como: Objetos, Classes, Instanciação, Encapsulamento, Herança, Polimorfismo, etc.


Linguagens de programa o oo
Linguagens de Programação OO

Ling. Orientadas a Objeto (LPOO)

  • A LPOO introduz novos conceitos e características, tais como:

    • Objetos,

    • Classes,

    • Instanciação,

    • Encapsulamento,

    • Herança,

    • Polimorfismo, etc.

Linguagem de

Programação

Ling. convencionais (LC)


Surgimento da poo
Surgimento da POO

  • Influenciados pela Linguagem SIMULA (anos 60), derivada do ALGOL e desenvolvida no Centro Norueguês de Computação, por Kristen Nygaard e Ole-Johan Dahl,os cientistas do Xerox Palo Alto Research Center (PARC) iniciou um trabalho que resultou na linguagem SmallTalk.

  • A SmallTalk (anos 70), foi a primeira linguagem autêntica orientada a objetos.

  • Cada elemento do SMALLTALK é tratado como sendo um objeto. Esta linguagem é puramente OO.


Algumas aplica es
Algumas aplicações

  • Desenvolvimento de Interfaces Gráficas com o Usuário. Principalmente a programação em ambiente do Macintosh Apple, Windows, etc.

  • Aplicada na Engenharia de Software, Sistemas Distribuídos, Inteligência Artificial, e Banco de Dados.

  • A POO pode ser estendida para Métodos de Análisede Sistemas e Desenvolvimento de Sistemas.


Conceitos
Conceitos

  • Objetos

  • Métodos

  • Classes

  • Instanciação

  • Herança

  • Polimorfismo

  • Classes Abstratas


Objetos
Objetos

  • POO é definida em torno da noção central de Objeto: O domínio das aplicações é definido em termos de objeto. Os desenvolvedores identificam e descrevem todos os objetos do domínio.

  • O que é um Objeto ?

  • Um objeto é uma abstração de um elemento (entidade) do mundo real. É algo que tem um limite bem definido.

  • Ex. : Um arquivo,

  • Um gato, um Funcionário,uma cadeira,

  • Uma conta bancária, etc.


Objetos1
Objetos

  • Uma definição formal de um objeto é :

  • Um Objeto é uma entidade lógica que contém dados e código para manipular esses dados.

  • Cada Objeto tem características particulares que constituem as propriedades deste objeto.

  • Ex. : A cor da cadeira ( um objeto ) é azul

  • A altura do jogador (um objeto) é 10


Objetos2
Objetos

  • Podemos um Objetos é constituido de três partes :

  • Identificador (OID) – Identificação única do objeto

  • Dois objetos O1 e O2 são idênticosse possuem o mesmo OID.

  • Estados (ou Informações)

    Propriedades e valores atuais para cada uma das Prop.

    Ex. : Em um objeto CARRO temos :

    cor = AZUL

    anoFab = 2004

  • Dois objetos são iguais se seus estados são iguais.


Objetos3
Objetos

  • Comportamento (Ação)

  • O comportamento de um objeto é o modo como ele age e reage. Ele é definido pelo conjunto de operações que podemos executar no objeto.

  • As instruções das ações são dadas em procedimentos chamados de métodos de execução dessas ações.

  • Um método selecionado será aplicado ao objeto para executar a ação desejada.


M todos
Métodos

  • Métodos são conjuntos de operações para verificar e ou manipular as propriedades (estado) de um objeto.

  • Ex.: Para o objeto CARRO :

  • getANO() return(anoFab)setCOR (C) cor  C


M todos1
Métodos

  • Ex. : O Objeto Professor :

Interação


Encapsulamento
Encapsulamento

  • Os Dados (Estados) e os Métodos (Comportamentos) que manipulam um objeto são agrupados (encapsulados) na mesma entidade (o objeto).

  • Detalhes de Implementação interna são Escondidos e o acesso ao objeto é feito via a interface do objeto.


Interfaces
Interfaces

  • Através dos métodos, interagimos com o objeto solicitando e/ou alterando o seu estado interno.Esta é a única forma de interagirmos com o interior do objeto.

  • Isto nos dá uma idéia de “caixa preta” , ou seja a forma como os dados são trabalhados internamente, não tem muito significado para o usuário e sim o resultado da ação solicitada.

  • Para interagimos com o objeto e este como o mundo externo, utilizamos um conjunto de metodos que representa a interface do objeto


Interface
Interface

Interface: É o conjunto dos métodos do objeto.A Interface permite um alto grau de abstração. Ela especifica a interação do objeto com o mundo externo.

OBJETO

Interface

INTERACAO COM O MEIO


Mensagens
Mensagens

  • Os objetos são solicitados a executar algo através de mensagens.

  • As Mensagens são sincronizadas: O método que está enviando a mensagem não é executado até que o método que executa a mensagem termine.

Mensagens

OBJETO


Classes
Classes

  • Os objetos são diferentes um dos outros pelas suas características (propriedades e metodos).

  • Os objetos podem ser classificados por características, .

  • Para gerarmos um objetos, necessitamos dizer quais as suas características e portanto nos baseamos em um determinado “molde”.

  • A esse “molde” chamamos na POO de Classes do Objeto.


Classes1
Classes

  • A Classe é, portanto, a descrição de uma família de objetos que tem a mesma estrutura (propriedades)e o mesmo comportamento (método).

  • Uma classe possui dois componentes:

  • Componente Estático : Dados e

    Componente Dinâmico : Procedimentos (Métodos)

  • A classe é uma entidade conceitual que descreve o objeto. Sua definição serve como um modelo para a construção da sua representação física.


Classes2
Classes

  • O objeto Homem,(por exemplo), pode ser “moldado” pela classe pessoa.

  • Uma cadeira pela classe moveis.

  • Um fusca pela classe carro, etc.

  • Desta forma uma classe pode gerar vários objetos, tendo todos eles as mesmas características.

  • Na POO definimos as classes dos objetos e utilizamos estas classes para gerar objetos. Um objeto gerado será conhecido como uma Instância da Classe geradora.


Inst ncias

CLASSE P

P3

P2

P1

Instâncias

Onde :

P – Classe do Objeto P

P1,P2,P3 – Instâncias da classe P (Objetos)

Obs. : Cada instância da classe P terá seus próprios dados independente dos outros.


Resumo
Resumo

  • Objeto

    É uma entidade fechada que possui dados (características) e métodos (operações ou ações).

  • Método

    É uma sub-rotina interna no objeto que informa como executar uma ação.

  • Classe

    É um recipiente para construir objetos. Ela sabe as variáveis que estão no objeto e detém os métodos para cada objeto.


Resumo1
Resumo

  • Instância

  • É um objeto que detém os dados e a referência (ponteiro) para as classes . A referência é importante, já que a classe possui os métodos.

  • Mensagem

  • Perguntar a um objeto alguma coisa é chamado de: “envio de mensagem.” Isto é similar a solicitar uma sub-rotina.


Heran a
Herança

  • Objetos definidos pela mesma classe, pode apresentar um comportamento especifico.

  • Observe :

  • Se temos a classes : Moveis

  • Esta classe pode instanciar uma cadeira e uma mesa, porém a propriedade : Num de gavetas não se aplica aos dois objetos. Apenas a mesa.

  • Assim como fazer para instanciar objetos com atributos diferentes de um mesma classe ?


Heran a1
Herança

  • Uma forma bastante utilizada na POO esta relacionada com o conceito de herança.

  • Classes mais especificas são modeladas partindo de uma classe mais genérica e assim “herdando” todo as suas caracteristicas.

  • No nosso exemplo, teríamos a classe : Moveis (mais genérica) e as sub-classes : CMesa e CCadeira ( cada uma com suas particularidade, podendo assim gerar seus objetos que “herdam” as características mais gerais da classe moveis.


Subclasses superclasses
Subclasses / Superclasses

  • Herança é o mecanismo de transmissão das propriedades de uma classe (a superclasse) para outra (a subclasse).

  • C2 herda de C1 (C2 é subclasse de C1)

  • Uma instância de C2 é considerada também umainstância de C1.


Subclasses superclasses1

Características

Herdadas

Subclasses / Superclasses


Heran a simples e heran a multiplas
Herança Simples e Herança Multiplas

  • A relação de herançaliga uma classe a suasuperclasse

  • O termo Superclasse refere-se a todas as classes, as quais uma classe herda.

  • Ex.: A Superclasse (do aspirador ) = {Eletrodoméstico, Equipamento}

  • Em um relacionamento de herança simples, cada classe tem apenas uma superclasse (direta):


Heran a simples e heran a multiplas1
Herança Simples e Herança Multiplas

  • A Herança Múltipla: É o mecanismo que permitecom que a subclasse herde de mais de uma superclasse.

  • Herança múltipla permite uma melhor organização dos objetos, pois evita redundâncias (de propriedades ede métodos).

  • No entanto, o seu uso é complicado, já que existe o problema de conflitos.


Polimorfismo
Polimorfismo

  • Frequentemente temos a necessidade de redefinir um método herdado dando-lhe um novo código, dependendo das caracteristicas da sua subclasse.

  • O Polimorfismo é o uso de um único nome para definir varias formas distintas.


Polimorfismo1
Polimorfismo

Como fazer para calcular a gratificação, uma vez que para cada tipo de empregado, temos um calculo diferente ?


Polimorfismo2
Polimorfismo

  • A seleção do método pode ser feita pelo sistema, durante a execução  (o dynamic binding).

  • Seja E o conjunto dos empregados e eum empregado, vamos calcular a gratificação de todos os empregados:

  • Na PE escrevemos: para cada e em E faça case tipo(e): secretária: gratificação1(e) engenheiro: gratificação2(e) motorista: gratificação3(e)

  • Na POO escrevemos: para cada eem E do gratificação(e)

  • Polimorfismo é um poderoso mecanismo para compartilhar e reutilizar o conhecimento.


Representa o nos grafos

Gen.

isa

Esp.

Representação nos Grafos

  • Generalização (entre classes : a herança)

  • - generalização

  • - especialização

  • Instanciação ( entre Objetos e Classes )

  • - instance-of

  • Agregação (entre objetos)

  • - part-of


Metaclasse
Metaclasse

  • Metaclasses:Uma classe geradora de outras classes. Ela agrupa métodos aplicados a uma classe e a estrutura comum de dados de todas as classes.

  • Ex.: métodos aplicados à classe:

  • - Criação e destruição de instâncias;

  • Para evitar a regressão ao infinito na criação de metaclasses, a noção da classe e da metaclasse foi generalizada a uma classe: a classe Object.


Metaclasse1
Metaclasse

  • Desta forma todo objetos descende da classe Object.

  • A classe Object torna-se a raiz do gráfico de herança (isa), e fornece as propriedades comuns dos objetos, tais como : OID, o método new (objeto), o método delete (objeto), etc.


Classes abstratas
Classes Abstratas

  • São Superclasses que não geram instâncias.

  • Elas apenas definem métodos (chamados de protocolos) que todas as subclasses devem implementar.

  • As superclasses abstratas são geralmente incompletas.

  • Classes Abstratas são uma convenção útil, mas não são comuns a todas as LPOO.


O desenvolvimento oo
O Desenvolvimento OO

  • Defina uma hierarquia de concepção, fazendo primeiro as abstrações. (identifique as classes)

  • Defina o protocolo de classes: O que a classe faz e como ela faz?

  • Defina o estado, o dado.- Estado visível: no qual o dado é conhecidofora do objeto.

  • - Estado escondido: no qual o dado não é conhecido fora do objeto.


O desenvolvimento oo1

Obj.

Empregado

Obj.

Pintor

O Desenvolvimento OO


Exerc cio
Exercício

  • O que é um objeto ?

  • O que é uma classe ?

  • Defina o conceito de encapsulamento.

  • Explique o que é herança na POO.

  • Dê exemplo real de Classes, objetos e Herança

  • Defina a concepção de um aplicativo qualquer abstraindo todo o contexto baseado nos conceitos da Orientação a Objeto.


ad