Programação
       Orientada a Objetos


    Unidade I – Introdução ao
Paradigma da Orientação a Objetos




                               Prof. Nécio de Lima Veras
                http://lattes.cnpq.br/8284657916723590
Objetivo
Citar características, vantagens e
desvantagens do paradigma da orientação a
objetos, comparando-a com o paradigma
estruturado.




                                   Prof. Nécio de Lima Veras
                    http://lattes.cnpq.br/8284657916723590
Roteiro



●   Introdução
●   O Paradigma da tecnologia de objetos;
●   Modelagem conceitual (abstração);
●   Processos de abstração;
●   Operações de abstração.


                                        Prof. Nécio Veras
Introdução




●
    Uma construção de um programa
    implicará em definir um modelo de
    resolução e isso envolve um estudo do
    problema (contexto e aspectos
    importantes);
                                 Prof. Nécio Veras
Introdução (cont.)

•    Como construir um modelo de resolução (ou
     modelagem do problema)?
    –  Existem para isso vários paradigmas:
    1. Meio Procedural (computador é uma máquina que
       apenas obedece ordens);
    2. Meio funcional (computador avalia funções e o programa
       define e compõe funções);
    3. Meio orientado a objetos (Visa “imitar” o mundo real, o
       computador simula as interações entre os objetos);




                                                 Prof. Nécio Veras
O Paradigma da Orientação a
                   Objetos
●
    O mundo real é constituído por entidades;
●
    Entidade: “Alguma coisa” que tenha sua
    própria existência, características e que
    apresenta alguma função do mundo real;
    – Assim: Entidade = Objeto;
●
    Mas o que seria esse Objeto?




                                       Prof. Nécio Veras
O paradigma da Orientação a
                        Objetos
●
    Segundo o dicionário português (s. m.):
    –   Tudo o que se oferece à vista, que afeta os sentidos.
    –   Qualquer coisa.
    –   Fig. Tudo o que se oferece ao espírito, que o ocupa; intenção, propósito.
    –   Causa, motivo de um sentimento, de uma ação.
    –   Matéria própria: o objeto de uma ação.
    –   Direito. Aquilo sobre o que incide um direito, uma obrigação, um contrato,
        uma demanda em juízo.
    –   Filosofia. O que é pensado e se opõe ao ser pensante, ou sujeito.
    –   Gramática. Complementos verbais: objeto direto e objeto indireto.
    –   O objeto amado, a pessoa a quem se ama.




                                                                 Prof. Nécio Veras
O paradigma da Orientação a
                      Objetos
●
    No mundo computacional, embora não signifique algo
    concreto ou palpável, é constituído por características que
    apresentam alguma função do mundo real;
●
    E isso inspira a resolução de problemas baseado na:
     – construção de um modelo que englobe objetos
        (entidades) definindo-se as interações entre eles;
    –   Ex.: Problema: “Chegar a um determinado ponto da
        cidade”;
        ●
            Objetos envolvidos: “Eu” , “ônibus” e “campainha”;




                                                     Prof. Nécio Veras
O Paradigma da Orientação a
          Objetos: definição preliminar
●
    Um software consiste em um entidade
    (objeto), expresso na forma de texto, que
    especifica os objetos que atuam na resolução
    de um determinado problema e que descreve
    como esses objetos devem interagir no
    sentido de resolvê-los.




                                      Prof. Nécio Veras
Modelagem Conceitual
                                              Refere-se às
Operação mental                               convenções de
para observar um                              representação
domínio e capturar
sua estrutura
                                 REPRESENTAÇÃO
               ABSTRAÇÃO


                                              Entidade
                                            Representada
        Entidade
                                Notação gráfica,
        Observada          linguagem de programação
                                                        Avião



                                                  Prof. Nécio Veras
Abstração
●
    Ex.: Problema: “determinar a média final de um aluno”;
    – Aspectos relevantes: Suas notas, assiduidade, participação
      durante as aulas;
    – Aspectos irrelevantes: Meio de transporte utilizado, procedência
      escolar, gostos;
●
    Constitui-se em um processo mental usado para
    modelar uma entidade, isolando as características
    importantes;
●
    Objetivo: Reduzir a complexidade do problema;




                                                       Prof. Nécio Veras
Abstração (cont.)
●
    Sempre dependerá do CONTEXTO, ou seja,
    do PONTO DE VISTA;
●
    Deve enfatizar as características essenciais
    do problema e o projetista deve:
    – Considerar essas características sob o ponto
      de vista de quem necessita da solução;




                                         Prof. Nécio Veras
Abstração
       “a beleza está nos olhos de quem a vê”


• Diferentes abstrações a partir de um mesmo objeto
  do mundo real




                                                    Multiplicidade
                                           I, II,   do conjunto


          Maça
         Peso
         cor da casca      Receita
         formato

                                           Prof. Nécio Veras
Conclusão (Abstração)
●
    A forma de representação depende do tipo de
    problema e dos objetivos;
●
    Um arquiteto deve representar o modelo de
    resolução do problema de construção de casa,
    usando maquetes, plantas, etc.
●
    Nosso caso: Definir modelo para que o computador
    resolva problemas;
    – Linguagens de programação;
    – Diagramas/textos descritivos;




                                          Prof. Nécio Veras
Operações de Abstração
•   É importante que se conheça os operações usadas
    durante o processo de abstração que envolve
    objetos;
•   Demonstra como o ser humano mentaliza,
    organiza e modelo o mundo ao seu redor;
•   Aplicaremos as seguintes operações básicas:
     1.   Classificação / Instanciação;
     2.   Generalização / Especialização;
     3.   Agregação / Decomposição;
     4.   Associação;



                                            Prof. Nécio Veras
Classificação / Instanciação
●
    Cada entidade possui determinadas características
    que a identificam;
●
    Ex.: Carro = Automóvel , pois possui todas as
    características de um automóvel, tais como:
    – Ter um motor, porta-malas, placa, sistemas de câmbio e
      freios, volante, etc.
●
    Veículo do vizinho, também é um automóvel, desde
    que possua as mesmas características;
    – São entidades distintas, porém pertencem a mesma
      categoria de automóveis;


                                                   Prof. Nécio Veras
Classificação
●
    Uma categoria define o conjunto de
    características que devem ser apresentados
    por um objeto;
●
    Categoria = Classe;
●
    Objetos (Possuem sua própria existência e
    características);
●
    Objetos com as mesmas características
    pertencem a uma mesma classe;


                                     Prof. Nécio Veras
Instanciação
●
    Ao construímos um objeto contendo todas as
    características de determinada classe,
    estamos fazendo uma operação de
    Instanciação;
●
    Ocorre sempre que criarmos uma entidade
    de determinada classe;




                                     Prof. Nécio Veras
Visualizando
CATEGORIA (CLASSE)

             Estudante
                de
             Graduação

                          CLASSIFICAÇÃO

                                    INSTANCIAÇÃO


          José        Maria

             INDIVÍDUO
               (Objeto)
                                    Prof. Nécio Veras
Classificação / Instanciação
                   (conclusão)
●
    Classificação: Operação que tem por
    objetivo, através da análise das
    características de um objeto, definir a que
    classe pertence;
●
    Instanciação: Operação que, dada uma
    determinada classe, define (cria) um objeto
    pertencente a esta classe;



                                       Prof. Nécio Veras
Generalização / Especialização
●
    Imagine um profissional formado em computação
    (objeto) pertencente à classe bacharel em
    computação;
●
    Considere agora este profissional faça um curso de
    especialização em análise de sistemas;
    – Então, este novo profissional possui características
      adicionais;
    – Agora ele também faz parte da classe Analistas de
      Sistemas;
●
    Assim, análise de sistemas constitui-se em uma
    especialização da classe bacharel em computação;


                                                    Prof. Nécio Veras
Visualizando
CATEGORIA (CLASSE)
            Estudante



                         GENERALIZAÇÃO


                                   ESPECIALIZAÇÃO
                                       (herança)
    Estudante        Estudante
       de             de Pós-
    Graduação        Graduação

       CATEGORIA (CLASSE)
                                   Prof. Nécio Veras
Visualizando (cont.)
  CATEGORIA (CLASSE)
                       Mamífero
   Atributos
 •sangue quente
 •vertebrado
 •vivíparo                       GENERALIZAÇÃO


                                          ESPECIALIZAÇÃO
  Atributos             Baleia                (herança)
•Habitat: mar
•Tempo médio de
  vida: 200 anos
                   CATEGORIA(CLASSE)
                                            Prof. Nécio Veras
Generalização / Especialização
                   (Conclusão)
●
    Generalização: Operação de análise de um
    conjunto de classes que identificam características
    comuns a todas, tendo-se por objetivo a definição
    de uma classe mais genérica, a qual especificará
    essas características comuns;
●
    Especialização: Operação em que, a partir de uma
    classe, identifica-se uma ou mais subclasses, cada
    uma especificando características adicionais em
    relação à classes mais geral;




                                            Prof. Nécio Veras
Agregação / Decomposição
●
    Como vimos, um objeto possui determinadas
    características:
    – Características de decomposição;
    – Características de ação;
●
    Ação está relacionada aos serviços que este objeto
    pode executar;
●
    Decomposição dizem respeito à constituição do
    objeto;
●
    Um objeto pode ser composto por vários outros
    objetos;


                                           Prof. Nécio Veras
Agregação / Decomposição
                   (cont.)
●
    Quando unimos um conjuntos de objetos, com o
    objetivo de formarmos outros objetos, estamos
    realizando uma operação de agregação;
●
    Ao analisarmos um objeto isolando cada um de
    seus componentes, estamos fazendo uma
    operação de decomposição;
●
    Os diagramas que demonstram estas operações,
    também podem ser chamados de Todo-Parte;



                                        Prof. Nécio Veras
Visualizando
CATEGORIA(CLASSE)


               Estudante

                            AGREGAÇÃO
                             (composição -
                                síntese)

                                       DECOMPOSIÇÃO
      Nome           Endereço            (refinamento -
                                             análise)
   CATEGORIA      COMPONENTE


                                         Prof. Nécio Veras
Associação
●
    Apresenta um determinado relacionamento,
    caracterizado pela ligação entre suas entidades;
     – Ex.: Professor e aluno no problema relacionado
       ao ato de ministrar aulas;
●
    Em associação, as entidades que possuem ligação
    existem independentemente uma da outra;
    –   Ao contrário de Agregação/decomposição, no qual implica
        o acoplamento forte entre as entidades (uma é parte
        integrante da outra);




                                                  Prof. Nécio Veras
Exercícios




             Prof. Nécio Veras

Introdução ao paradigma OO

  • 1.
    Programação Orientada a Objetos Unidade I – Introdução ao Paradigma da Orientação a Objetos Prof. Nécio de Lima Veras http://lattes.cnpq.br/8284657916723590
  • 2.
    Objetivo Citar características, vantagense desvantagens do paradigma da orientação a objetos, comparando-a com o paradigma estruturado. Prof. Nécio de Lima Veras http://lattes.cnpq.br/8284657916723590
  • 3.
    Roteiro ● Introdução ● O Paradigma da tecnologia de objetos; ● Modelagem conceitual (abstração); ● Processos de abstração; ● Operações de abstração. Prof. Nécio Veras
  • 4.
    Introdução ● Uma construção de um programa implicará em definir um modelo de resolução e isso envolve um estudo do problema (contexto e aspectos importantes); Prof. Nécio Veras
  • 5.
    Introdução (cont.) • Como construir um modelo de resolução (ou modelagem do problema)? – Existem para isso vários paradigmas: 1. Meio Procedural (computador é uma máquina que apenas obedece ordens); 2. Meio funcional (computador avalia funções e o programa define e compõe funções); 3. Meio orientado a objetos (Visa “imitar” o mundo real, o computador simula as interações entre os objetos); Prof. Nécio Veras
  • 6.
    O Paradigma daOrientação a Objetos ● O mundo real é constituído por entidades; ● Entidade: “Alguma coisa” que tenha sua própria existência, características e que apresenta alguma função do mundo real; – Assim: Entidade = Objeto; ● Mas o que seria esse Objeto? Prof. Nécio Veras
  • 7.
    O paradigma daOrientação a Objetos ● Segundo o dicionário português (s. m.): – Tudo o que se oferece à vista, que afeta os sentidos. – Qualquer coisa. – Fig. Tudo o que se oferece ao espírito, que o ocupa; intenção, propósito. – Causa, motivo de um sentimento, de uma ação. – Matéria própria: o objeto de uma ação. – Direito. Aquilo sobre o que incide um direito, uma obrigação, um contrato, uma demanda em juízo. – Filosofia. O que é pensado e se opõe ao ser pensante, ou sujeito. – Gramática. Complementos verbais: objeto direto e objeto indireto. – O objeto amado, a pessoa a quem se ama. Prof. Nécio Veras
  • 8.
    O paradigma daOrientação a Objetos ● No mundo computacional, embora não signifique algo concreto ou palpável, é constituído por características que apresentam alguma função do mundo real; ● E isso inspira a resolução de problemas baseado na: – construção de um modelo que englobe objetos (entidades) definindo-se as interações entre eles; – Ex.: Problema: “Chegar a um determinado ponto da cidade”; ● Objetos envolvidos: “Eu” , “ônibus” e “campainha”; Prof. Nécio Veras
  • 9.
    O Paradigma daOrientação a Objetos: definição preliminar ● Um software consiste em um entidade (objeto), expresso na forma de texto, que especifica os objetos que atuam na resolução de um determinado problema e que descreve como esses objetos devem interagir no sentido de resolvê-los. Prof. Nécio Veras
  • 10.
    Modelagem Conceitual Refere-se às Operação mental convenções de para observar um representação domínio e capturar sua estrutura REPRESENTAÇÃO ABSTRAÇÃO Entidade Representada Entidade Notação gráfica, Observada linguagem de programação Avião Prof. Nécio Veras
  • 11.
    Abstração ● Ex.: Problema: “determinar a média final de um aluno”; – Aspectos relevantes: Suas notas, assiduidade, participação durante as aulas; – Aspectos irrelevantes: Meio de transporte utilizado, procedência escolar, gostos; ● Constitui-se em um processo mental usado para modelar uma entidade, isolando as características importantes; ● Objetivo: Reduzir a complexidade do problema; Prof. Nécio Veras
  • 12.
    Abstração (cont.) ● Sempre dependerá do CONTEXTO, ou seja, do PONTO DE VISTA; ● Deve enfatizar as características essenciais do problema e o projetista deve: – Considerar essas características sob o ponto de vista de quem necessita da solução; Prof. Nécio Veras
  • 13.
    Abstração “a beleza está nos olhos de quem a vê” • Diferentes abstrações a partir de um mesmo objeto do mundo real Multiplicidade I, II, do conjunto Maça Peso cor da casca Receita formato Prof. Nécio Veras
  • 14.
    Conclusão (Abstração) ● A forma de representação depende do tipo de problema e dos objetivos; ● Um arquiteto deve representar o modelo de resolução do problema de construção de casa, usando maquetes, plantas, etc. ● Nosso caso: Definir modelo para que o computador resolva problemas; – Linguagens de programação; – Diagramas/textos descritivos; Prof. Nécio Veras
  • 15.
    Operações de Abstração • É importante que se conheça os operações usadas durante o processo de abstração que envolve objetos; • Demonstra como o ser humano mentaliza, organiza e modelo o mundo ao seu redor; • Aplicaremos as seguintes operações básicas: 1. Classificação / Instanciação; 2. Generalização / Especialização; 3. Agregação / Decomposição; 4. Associação; Prof. Nécio Veras
  • 16.
    Classificação / Instanciação ● Cada entidade possui determinadas características que a identificam; ● Ex.: Carro = Automóvel , pois possui todas as características de um automóvel, tais como: – Ter um motor, porta-malas, placa, sistemas de câmbio e freios, volante, etc. ● Veículo do vizinho, também é um automóvel, desde que possua as mesmas características; – São entidades distintas, porém pertencem a mesma categoria de automóveis; Prof. Nécio Veras
  • 17.
    Classificação ● Uma categoria define o conjunto de características que devem ser apresentados por um objeto; ● Categoria = Classe; ● Objetos (Possuem sua própria existência e características); ● Objetos com as mesmas características pertencem a uma mesma classe; Prof. Nécio Veras
  • 18.
    Instanciação ● Ao construímos um objeto contendo todas as características de determinada classe, estamos fazendo uma operação de Instanciação; ● Ocorre sempre que criarmos uma entidade de determinada classe; Prof. Nécio Veras
  • 19.
    Visualizando CATEGORIA (CLASSE) Estudante de Graduação CLASSIFICAÇÃO INSTANCIAÇÃO José Maria INDIVÍDUO (Objeto) Prof. Nécio Veras
  • 20.
    Classificação / Instanciação (conclusão) ● Classificação: Operação que tem por objetivo, através da análise das características de um objeto, definir a que classe pertence; ● Instanciação: Operação que, dada uma determinada classe, define (cria) um objeto pertencente a esta classe; Prof. Nécio Veras
  • 21.
    Generalização / Especialização ● Imagine um profissional formado em computação (objeto) pertencente à classe bacharel em computação; ● Considere agora este profissional faça um curso de especialização em análise de sistemas; – Então, este novo profissional possui características adicionais; – Agora ele também faz parte da classe Analistas de Sistemas; ● Assim, análise de sistemas constitui-se em uma especialização da classe bacharel em computação; Prof. Nécio Veras
  • 22.
    Visualizando CATEGORIA (CLASSE) Estudante GENERALIZAÇÃO ESPECIALIZAÇÃO (herança) Estudante Estudante de de Pós- Graduação Graduação CATEGORIA (CLASSE) Prof. Nécio Veras
  • 23.
    Visualizando (cont.) CATEGORIA (CLASSE) Mamífero Atributos •sangue quente •vertebrado •vivíparo GENERALIZAÇÃO ESPECIALIZAÇÃO Atributos Baleia (herança) •Habitat: mar •Tempo médio de vida: 200 anos CATEGORIA(CLASSE) Prof. Nécio Veras
  • 24.
    Generalização / Especialização (Conclusão) ● Generalização: Operação de análise de um conjunto de classes que identificam características comuns a todas, tendo-se por objetivo a definição de uma classe mais genérica, a qual especificará essas características comuns; ● Especialização: Operação em que, a partir de uma classe, identifica-se uma ou mais subclasses, cada uma especificando características adicionais em relação à classes mais geral; Prof. Nécio Veras
  • 25.
    Agregação / Decomposição ● Como vimos, um objeto possui determinadas características: – Características de decomposição; – Características de ação; ● Ação está relacionada aos serviços que este objeto pode executar; ● Decomposição dizem respeito à constituição do objeto; ● Um objeto pode ser composto por vários outros objetos; Prof. Nécio Veras
  • 26.
    Agregação / Decomposição (cont.) ● Quando unimos um conjuntos de objetos, com o objetivo de formarmos outros objetos, estamos realizando uma operação de agregação; ● Ao analisarmos um objeto isolando cada um de seus componentes, estamos fazendo uma operação de decomposição; ● Os diagramas que demonstram estas operações, também podem ser chamados de Todo-Parte; Prof. Nécio Veras
  • 27.
    Visualizando CATEGORIA(CLASSE) Estudante AGREGAÇÃO (composição - síntese) DECOMPOSIÇÃO Nome Endereço (refinamento - análise) CATEGORIA COMPONENTE Prof. Nécio Veras
  • 28.
    Associação ● Apresenta um determinado relacionamento, caracterizado pela ligação entre suas entidades; – Ex.: Professor e aluno no problema relacionado ao ato de ministrar aulas; ● Em associação, as entidades que possuem ligação existem independentemente uma da outra; – Ao contrário de Agregação/decomposição, no qual implica o acoplamento forte entre as entidades (uma é parte integrante da outra); Prof. Nécio Veras
  • 29.
    Exercícios Prof. Nécio Veras