SlideShare ist ein Scribd-Unternehmen logo
1 von 33
POO II            Início
                                                     Orientação a
• Ementa                                               Objetos
                                                        Objetos
  – Programa de disciplina
                                                      Mensagens
  – Metodologia de Avaliação
                                                         Classe
• Projetos                                             Abstração
  – Grupos de Estudo                                Encapsulamento

  – Conclusão dos Projetos                              Herança
  – JAVA embarcados                                  Poliformismo


                                                    Programação
                                                     Orientada a
                                                      Objetos II
                                                 Prof. Pedro Felipe Teixeira
                                                 Tecnólogo em Mecatrônica
                                                 Industrial
                                                 EEEP Capelão Frei Orlando
 Início    Vídeos   NetBeans   Link’s
Introdução                     Início
                                                                          Orientação a
                                                                            Objetos
Programação Orientada
                                                                             Objetos

• A orientação a objetos (OO) foi concebida na década de 70.               Mensagens

• Origem na linguagem SIMULA-67 (década de 60 - Noruega), que já              Classe
implementava alguns conceitos da OO.
                                                                            Abstração
• SIMULA-68 foi a primeira linguagem a suportar os conceitos da OO.
                                                                         Encapsulamento

• Smaltalk, criada pela Xerox, popularizou e incentivou a OO.                Herança
• Outras linguagens OO: C++, Object Pascal (Delphi), C#, Java.            Poliformismo

• Java, de fato, popularizou a Orientação a Objetos.
                                                                         Programação
                                                                          Orientada a
                                                                           Objetos II
                                                                      Prof. Pedro Felipe Teixeira
                                                                      Tecnólogo em Mecatrônica
                                                                      Industrial
                                                                      EEEP Capelão Frei Orlando
   Início        Vídeos        NetBeans         Link’s
Orientação a Objetos                                Início
                                                                         Orientação a
                                                                           Objetos
                                                                            Objetos
•Técnicas de programação tradicionais
                                                                          Mensagens
•As técnicas de programação tradicionais, como por exemplo a
“decomposição funcional”, leva o desenvolvedor a decompor o                  Classe
sistema em partes menores (funções), criando um emaranhado de
inúmeras funções que chamam umas às outras.                                Abstração

•Geralmente não há separação de conceitos e responsabilidades,          Encapsulamento
causando dependências enormes no sistema, dificultando futuras
manutenções no código do programa.                                          Herança

                                                                         Poliformismo
•Não existe muito reaproveitamento de código, ao contrário, muitas
vezes se tem muito código duplicado.
                                                                        Programação
                                                                         Orientada a
                                                                          Objetos II
                                                                     Prof. Pedro Felipe Teixeira
                                                                     Tecnólogo em Mecatrônica
                                                                     Industrial
                                                                     EEEP Capelão Frei Orlando
   Início        Vídeos      NetBeans         Link’s
Orientação a Objetos            Início
                                                Orientação a
                                                  Objetos
Técnicas de programação tradicionais
                                                   Objetos
É a famosa programação espaguete...
                                                 Mensagens

                                                    Classe

                                                  Abstração

                                               Encapsulamento

                                                   Herança

                                                Poliformismo


                                               Programação
                                                Orientada a
                                                 Objetos II
                                            Prof. Pedro Felipe Teixeira
                                            Tecnólogo em Mecatrônica
                                            Industrial
                                            EEEP Capelão Frei Orlando
  Início    Vídeos     NetBeans   Link’s
Orientação a Objetos                                 Início
                                                                         Orientação a
                                                                           Objetos
                                                                            Objetos
•O paradigma da Orientação a Objetos, ou Programação Orientada a
Objetos (POO ou OOP), eleva a programação e o desenvolvimento de          Mensagens
sistemas para um novo patamar.
                                                                             Classe
•A OO é um mecanismo moderno que ajuda a definir a estrutura de
programas baseada nos conceitos do mundo real, sejam eles reais ou         Abstração
abstratos.
                                                                        Encapsulamento
•A OO permite criar programas componentizados, separando as
partes do sistema por responsabilidades e fazendo com que essas             Herança
partes se comuniquem entre si, por meio de mensagens.
                                                                         Poliformismo
•Essas partes do sistemas são chamadas de OBJETOS.
                                                                        Programação
                                                                         Orientada a
                                                                          Objetos II
                                                                     Prof. Pedro Felipe Teixeira
                                                                     Tecnólogo em Mecatrônica
                                                                     Industrial
                                                                     EEEP Capelão Frei Orlando
   Início       Vídeos       NetBeans        Link’s
Orientação a Objetos                            Início
                                                                     Orientação a
                                                                       Objetos
                                                                        Objetos
•A OO é mais intuitiva e fácil de aprender do que as técnicas
tradicionais, pois foca o problema em conceitos do mundo real.        Mensagens
•Dentre as vantagens que a OO proporciona, podemos destacar:             Classe
         • aumento de produtividade
         • reuso de código                                             Abstração
         • redução das linhas de código programadas
         • separação de responsabilidades                           Encapsulamento
         • maior flexibilidade do sistema
         • facilidade na manutenção, dentre outras vantagens.           Herança

                                                                     Poliformismo


                                                                    Programação
                                                                     Orientada a
                                                                      Objetos II
                                                                 Prof. Pedro Felipe Teixeira
                                                                 Tecnólogo em Mecatrônica
                                                                 Industrial
                                                                 EEEP Capelão Frei Orlando
   Início        Vídeos       NetBeans        Link’s
Orientação a Objetos                  Início
                                                        Orientação a
                                                          Objetos
                                                           Objetos
•A OO introduz e enfatiza os seguintes conceitos:
        • Objeto                                         Mensagens
        • Mensagem
                                                            Classe
        • Classe
        • Abstração                                       Abstração
        • Encapsulamento
                                                       Encapsulamento
        • Herança
        • Polimorfismo                                     Herança

                                                        Poliformismo


                                                       Programação
                                                        Orientada a
                                                         Objetos II
                                                    Prof. Pedro Felipe Teixeira
                                                    Tecnólogo em Mecatrônica
                                                    Industrial
                                                    EEEP Capelão Frei Orlando
  Início      Vídeos     NetBeans      Link’s
Objetos                 Início
                                                                      Orientação a
• Objetos são a chave para se compreender a tecnologia                  Objetos
  orientada a objetos. Você olha ao seu redor e tudo o                   Objetos
  que vê são objetos: carro, mesa, janela, livro, pessoa,
  etc.                                                                 Mensagens

                                                                          Classe
• Os objetos do mundo real têm duas características em
  comum: ESTADO e COMPORTAMENTO.                                        Abstração
• Estado                                                             Encapsulamento
    – O estado de um objeto revela seus dados importantes. Por
      exemplo, uma,pessoa tem: idade, peso, altura, cor de               Herança
      cabelo, cor da pele.
                                                                      Poliformismo

• Comportamento
    – O comportamento são as ações que aquele objeto pode            Programação
                                                                      Orientada a
      exercer ou executar. Por exemplo, uma pessoa pode: andar,        Objetos II
      falar, ouvir, pular.                                        Prof. Pedro Felipe Teixeira
                                                                  Tecnólogo em Mecatrônica
                                                                  Industrial
                                                                  EEEP Capelão Frei Orlando
  Início       Vídeos      NetBeans       Link’s
Objetos             Início
                                                                Orientação a
• Esses objetos podem ser tanto objetos concretos                 Objetos
  (carro, livro, nota fiscal), quanto conceitos abstratos          Objetos
  (conta corrente, venda, pessoa jurídica).
                                                                 Mensagens

                                                                    Classe
• Na Orientação a Objetos, os objetos do mundo real são
  modelados e representados no mundo computacional,               Abstração
  ou seja, dentro do sistema, por meio de objetos de
                                                               Encapsulamento
  sotware.
                                                                   Herança
• Cada objeto deve ser conhecido, bem definido e ter seu        Poliformismo
  limite e um significado dentro do sistema.
                                                               Programação
                                                                Orientada a
• Os objetos de software, assim como os objetos do               Objetos II
  mundo real, também possuem estado e                       Prof. Pedro Felipe Teixeira
                                                            Tecnólogo em Mecatrônica
  comportamento.                                            Industrial
                                                            EEEP Capelão Frei Orlando
   Início     Vídeos      NetBeans      Link’s
Objeto               Início
                                                             Orientação a
• Um objeto de software mantém seu estado em uma ou            Objetos
  mais de suas variáveis. Ele implementa seu                    Objetos
  comportamento através de seus métodos.
                                                              Mensagens

                                                                 Classe
• Método é o mesmo que função ou procedimento.
                                                               Abstração
• Por definição: Um objeto é um pedaço de software que      Encapsulamento
  possui variáveis (estado) e métodos (comportamento).
                                                                Herança

                                                             Poliformismo


                                                            Programação
                                                             Orientada a
                                                              Objetos II
                                                         Prof. Pedro Felipe Teixeira
                                                         Tecnólogo em Mecatrônica
                                                         Industrial
                                                         EEEP Capelão Frei Orlando
  Início     Vídeos    NetBeans     Link’s
Objetos             Início
                                                              Orientação a
• Um sistema pode conter um ou inúmeros objetos                 Objetos
  ativos. Cada objeto ativo no sistema em particular             Objetos
  também é chamado de instância. As diferentes
                                                               Mensagens
  instâncias possuem seu próprio estado.
                                                                  Classe

• O exemplo abaixo mostra várias instâncias de pessoas.         Abstração

                                                             Encapsulamento

                                                                 Herança

                                                              Poliformismo


                                                             Programação
                                                              Orientada a
                                                               Objetos II
                                                          Prof. Pedro Felipe Teixeira
                                                          Tecnólogo em Mecatrônica
                                                          Industrial
                                                          EEEP Capelão Frei Orlando
  Início      Vídeos    NetBeans      Link’s
Objetos              Início
                                                             Orientação a
• Cada instância de pessoa possui um estado diferente          Objetos
  em particular, como visto na última figura.                   Objetos
• Porém, cada instância, além do estado, também possui        Mensagens
  seus métodos(comportamento) que operam sobre o
  próprio estado. Em outras palavras, para pular, cada           Classe
  pessoa vai fazer uma determinada força dependendo            Abstração
  dasua idade, altura e peso, por exemplo.
                                                            Encapsulamento
• A idéia é que cada objeto seja responsável por seus
  dados (estado) e seja capaz de realizar as próprias           Herança
  operações que lhe foram atribuídas (comportamento).
                                                             Poliformismo


                                                            Programação
                                                             Orientada a
                                                              Objetos II
                                                         Prof. Pedro Felipe Teixeira
                                                         Tecnólogo em Mecatrônica
                                                         Industrial
                                                         EEEP Capelão Frei Orlando
  Início     Vídeos    NetBeans     Link’s
Mensagem                        Início
                                                               Orientação a
• Um objeto por si só não significa muito em um sistema.         Objetos
  Para ter algum sentido e valor esses objetos precisam           Objetos
  interagir e comunicar-se entre si.
                                                                Mensagens

                                                                   Classe
• Os objetos se comunicam por meio de mensagens.
                                                                 Abstração

                                                              Encapsulamento

                                                                  Herança

                                                               Poliformismo


                                                              Programação
• Quando um objeto A quer se comunicar com um objeto           Orientada a
                                                                Objetos II
  B é enviada uma mensagem de A para B.                    Prof. Pedro Felipe Teixeira
                                                           Tecnólogo em Mecatrônica
                                                           Industrial
                                                           EEEP Capelão Frei Orlando
  Início     Vídeos     NetBeans     Link’s
Mesagem               Início
                                                          Orientação a
• Enviar uma mensagem significa executar um método.         Objetos
• Então, se A envia uma mensagem para B, podemos             Objetos
  entender como o objeto A executando um método do         Mensagens
  objeto B.
                                                              Classe
• As mensagens são compostas por três partes:
   – Objeto a quem a mensagem é endereçada                  Abstração
   – Nome do método a ser chamado
                                                         Encapsulamento
   – Parâmetros que o método recebe
                                                             Herança

                                                          Poliformismo


                                                         Programação
                                                          Orientada a
                                                           Objetos II
                                                      Prof. Pedro Felipe Teixeira
                                                      Tecnólogo em Mecatrônica
                                                      Industrial
                                                      EEEP Capelão Frei Orlando
  Início     Vídeos      NetBeans      Link’s
Classe               Início
                                                              Orientação a
• No mundo real freqüentemente percebemos vários                Objetos
  objetos de um mesmo tipo. Por exemplo: seu carro é             Objetos
  um dos muitos carros existentes no mundo.
                                                               Mensagens

                                                                  Classe
• Usando a terminologia OO, dizemos que um carro em
  particular é uma instância da classe de objetos               Abstração
  conhecida como carros.
                                                             Encapsulamento


• Os carros, em geral, possuem estado (cor, potência do          Herança
  motor, combutível) e comportamento (ligar, acelerar,        Poliformismo
  brecar, mudar marcha) em comum.
                                                             Programação
                                                              Orientada a
                                                               Objetos II
                                                          Prof. Pedro Felipe Teixeira
                                                          Tecnólogo em Mecatrônica
                                                          Industrial
                                                          EEEP Capelão Frei Orlando
  Início     Vídeos     NetBeans     Link’s
Classe                Início
                                                                Orientação a
• O estado de cada carro é independente e pode ser                Objetos
  diferente do estado dos outros carros. Cada carro pode           Objetos
  ter uma cor diferentes, por exemplo.
                                                                 Mensagens

                                                                    Classe
• A partir dessas semelhanças, os fabricantes de veículos
  tiram vantagemdisso para padronizar a construção de             Abstração
  carros de um mesmo tipo, definindo um modelo único
                                                               Encapsulamento
  com características iguais para todos os carros a serem
  produzidos.                                                      Herança

                                                                Poliformismo
• Na Orientação a Objetos também é possível ter vários
  objetos do mesmo tipo, que compartilham
                                                               Programação
  caracteríscas em comum.                                       Orientada a
                                                                 Objetos II
                                                            Prof. Pedro Felipe Teixeira
                                                            Tecnólogo em Mecatrônica
                                                            Industrial
                                                            EEEP Capelão Frei Orlando
  Início      Vídeos    NetBeans      Link’s
Classe                Início
                                                              Orientação a
• Tirando vantagem dessa semelhança entre alguns                Objetos
  objetos, também é possível criar modelos para esses            Objetos
  objetos. Esse modelo é chamado de CLASSE. As classes
                                                               Mensagens
  são tipos que podem ser criados.
                                                                  Classe

• Por definição: Uma classe é um modelo (protótipo) que         Abstração
  define as variáveis (estado) e os métodos
                                                             Encapsulamento
  (comportamento) comuns a todos os objetos do
  mesmo tipo.                                                    Herança

                                                              Poliformismo


                                                             Programação
                                                              Orientada a
                                                               Objetos II
                                                          Prof. Pedro Felipe Teixeira
                                                          Tecnólogo em Mecatrônica
                                                          Industrial
                                                          EEEP Capelão Frei Orlando
  Início     Vídeos    NetBeans     Link’s
Classe                  Início
                                                                    Orientação a
• Na classe são definidas as variáveis e implementados os             Objetos
  métodos.                                                             Objetos
• Os objetos são criados a partir de suas classes.
                                                                     Mensagens
• A cada objeto criado o sistema aloca memória para o novo
  objeto e suas variáveis.                                              Classe

                                                                      Abstração

                                                                   Encapsulamento

                                                                       Herança

                                                                    Poliformismo


                                                                   Programação
• Comumente fazem confusão entre classes e objetos. Lembre-         Orientada a
  se que classe define as características comuns e os objetos        Objetos II
                                                                Prof. Pedro Felipe Teixeira
  são instâncias dessas classes, com estado próprio.            Tecnólogo em Mecatrônica
                                                                Industrial
                                                                EEEP Capelão Frei Orlando
   Início     Vídeos      NetBeans      Link’s
Abstração                     Início
                                                                Orientação a
• Abstração é a habilidade e a capacidade de se modelar           Objetos
  conceitos, entidades, elementos, problemas e                     Objetos
  características do mundo real, de um domínio do
  problema em questão, levando-se em conta apenas os             Mensagens
  detalhes importantes para a resolução do problema e
                                                                    Classe
  desprezando coisas que não têm importância no
  contexto.                                                       Abstração

                                                               Encapsulamento
• Se pensarmos no conceito de “conta corrente” bancária
  e abstraírmos este conceito, podemos identificar                 Herança
  detalhes comuns, como o número da conta, número da
  agência e saldo; e operações como débito em conta,            Poliformismo
  depósito e extrato da conta. Basicamente essas são as
  características de conta corrente para todos os bancos,      Programação
  apesar de um ou outro banco ter uma política de               Orientada a
                                                                 Objetos II
  descontos de taxas etc.                                   Prof. Pedro Felipe Teixeira
                                                            Tecnólogo em Mecatrônica
                                                            Industrial
                                                            EEEP Capelão Frei Orlando
  Início     Vídeos     NetBeans     Link’s
Encapsulamento                           Início
                                                                Orientação a
• Na OO, encapsulamento é o mecanismo utilizado para              Objetos
  disponibilizar métodos que operam sobre os dados e               Objetos
  que protegem o acesso direto indevido aos atributos de
                                                                 Mensagens
  uma instância fora da classe onde estes foram
  declarados.                                                       Classe

                                                                  Abstração
• Esta proteção consiste em se usar modificadores de
                                                               Encapsulamento
  acesso mais restritivos sobre os atributos definidos na
  classe e fornecendo métodos que alteram os valores               Herança
  destes atributos de alguma forma.
                                                                Poliformismo

• O encapsulamento ajuda a prevenir o problema de
                                                               Programação
  interferência externa indevida sobre os dados de um           Orientada a
                                                                 Objetos II
  objeto, como objetos que possam alterar os dados de       Prof. Pedro Felipe Teixeira
                                                            Tecnólogo em Mecatrônica
  outros objetos indevidamente.                             Industrial
                                                            EEEP Capelão Frei Orlando
  Início      Vídeos     NetBeans     Link’s
Encapsulamento                        Início
                                                            Orientação a
• Um exemplo deste problema pode ser o saldo da conta         Objetos
  bancária.                                                    Objetos

                                                             Mensagens
• O saldo certamente não pode ser alterado ou
                                                                Classe
  manipulado diretamente, mas sim através de métodos
  adequados para isso, como métodos que fazem                 Abstração
  lançamentos de débitos e créditos.
                                                           Encapsulamento


• A alteração direta do saldo causaria um problema de          Herança
  cálculos e inconsistência de dados.                       Poliformismo


                                                           Programação
                                                            Orientada a
                                                             Objetos II
                                                        Prof. Pedro Felipe Teixeira
                                                        Tecnólogo em Mecatrônica
                                                        Industrial
                                                        EEEP Capelão Frei Orlando
  Início     Vídeos     NetBeans     Link’s
Encapsulamento                       Início
                                                          Orientação a
• Justamente por isso devemos criar classes bem             Objetos
  encapsuladas, que forneçam métodos adequados para          Objetos
  operar sobre os dados dos objetos daquela classe.
                                                           Mensagens

                                                              Classe
• O uso de encapsulamento também evita que um
  programa torne-se tão interdependente que uma             Abstração
  pequena mudança tenha grandes efeitos colaterais.
                                                         Encapsulamento

                                                             Herança

                                                          Poliformismo


                                                         Programação
                                                          Orientada a
                                                           Objetos II
                                                      Prof. Pedro Felipe Teixeira
                                                      Tecnólogo em Mecatrônica
                                                      Industrial
                                                      EEEP Capelão Frei Orlando
  Início     Vídeos    NetBeans     Link’s
Herança                Início
                                                                  Orientação a
• Herança é um mecanismo da OO que permite criar                    Objetos
  novas classes a partir de classes já existentes,                   Objetos
  aproveitando-se das características existentes na classe
                                                                   Mensagens
  a ser extendida.
                                                                      Classe

• Este mecanismo é muito interessante pois promove um               Abstração
  grande reuso e reaproveitamento de código existente.
                                                                 Encapsulamento


• Com a herança é possível criar classes derivadas                   Herança
  (subclasses) a partir de classes bases (superclasses). As       Poliformismo
  subclasses são mais especializadas do que as suas
  superclasses, mais genéricas.
                                                                 Programação
                                                                  Orientada a
                                                                   Objetos II
• As subclasses herdam todas as características de suas       Prof. Pedro Felipe Teixeira
                                                              Tecnólogo em Mecatrônica
  superclasses, como suas variáveis e métodos.                Industrial
                                                              EEEP Capelão Frei Orlando
   Início     Vídeos     NetBeans      Link’s
Herança               Início
                                                               Orientação a
• Imagine que dentro de uma organização empresarial, o           Objetos
  sistema de RH tenha que trabalhar com os diferentes             Objetos
  níveis hierárquicos da empresa, desde o funcionário de
  baixo escalão até o seu presidente.                           Mensagens

• Todos são funcionários da empresa, porém cada um                 Classe
  com um cargo diferente. Mesmo a secretária, o pessoal
  da limpeza, o diretor e o presidente possuem um                Abstração
  número de identificação, além de salário e outras           Encapsulamento
  características em comum.
                                                                  Herança
• Essas características em comum podem ser reunidas
  em um tipo de classe em comum, e cada nível da               Poliformismo
  hierarquia ser tratado como um novo tipo, mas
  aproveitando-se dos tipos já criados, através da            Programação
  herança.                                                     Orientada a
                                                                Objetos II
                                                           Prof. Pedro Felipe Teixeira
                                                           Tecnólogo em Mecatrônica
                                                           Industrial
                                                           EEEP Capelão Frei Orlando
  Início     Vídeos     NetBeans     Link’s
Herança            Início
                                                    Orientação a
                                                      Objetos
                                                       Objetos

                                                     Mensagens

                                                        Classe

                                                      Abstração

                                                   Encapsulamento

                                                       Herança

                                                    Poliformismo


                                                   Programação
                                                    Orientada a
                                                     Objetos II
                                                Prof. Pedro Felipe Teixeira
                                                Tecnólogo em Mecatrônica
                                                Industrial
                                                EEEP Capelão Frei Orlando
Início   Vídeos   NetBeans   Link’s
Herança              Início
                                                               Orientação a
• Os subtipos, além de herdarem todas as características         Objetos
  de seus supertipos, também podem adicionar mais                 Objetos
  características, seja na forma de variáveis e/ou
                                                                Mensagens
  métodos adicionais, bem como reescrever métodos já
  existentes na superclasse (polimorfismo).                        Classe

                                                                 Abstração
• A herança permite vários níveis na hierarquia de
                                                              Encapsulamento
  classes, podendo criar tantos subtipos quanto
  necessário, até se chegar no nível de especialização            Herança
  desejado.
                                                               Poliformismo

• Podemos tratar subtipos como se fossem seus
                                                              Programação
  supertipos, por exemplo o sistema de RH pode tratar          Orientada a
                                                                Objetos II
  uma instância de Presidente como se fosse um objeto      Prof. Pedro Felipe Teixeira
                                                           Tecnólogo em Mecatrônica
  do tipo Funcionário, em determinada funcionalidade.      Industrial
                                                           EEEP Capelão Frei Orlando
  Início      Vídeos     NetBeans     Link’s
Herança                 Início
                                                                      Orientação a
                                                                        Objetos
• Porém não é possível tratar um supertipo como se fosse um              Objetos
  subtipo, a não ser que o objeto em questão seja realmente
  do subtipo desejado e a linguagem suporte este tipo de               Mensagens
  tratamento, seja por meio de conversão de tipos ou outro
  mecanismo.
                                                                          Classe

• Algumas linguagens de programação permitem herança                    Abstração
  múltipla, ou seja, uma classe pode estender características
  de várias classes ao mesmo tempo. É o caso do C++.                 Encapsulamento

• Outras linguagens não permitem herança múltipla, por se                Herança
  tratar de algo perigo se não usada corretamente. É o caso do
  Java.                                                               Poliformismo

• Na Orientação a Objetos as palavras classe base, supertipo,        Programação
  superclasse, classe pai e classe mãe são sinônimos, bem             Orientada a
  como as palavras classe derivada, subtipo, subclasse e classe        Objetos II
  filha também são sinônimos.                                     Prof. Pedro Felipe Teixeira
                                                                  Tecnólogo em Mecatrônica
                                                                  Industrial
                                                                  EEEP Capelão Frei Orlando
   Início      Vídeos      NetBeans       Link’s
Poliformismo                   Início
                                                             Orientação a
• Formalmente polimorfismo quer dizer “várias formas”.         Objetos
                                                                Objetos
• No caso da OO, polimorfismo denota uma situação na
  qual um objeto pode se comportar de maneiras                Mensagens
  diferentes ao receber uma mensagem, dependendo do
  seu tipo de criação.                                           Classe

                                                               Abstração
• O poliformismo é alcançado com auxílio do uso de
  herança nas classes e a reescrita (overriding) de         Encapsulamento
  métodos das superclasses nas suas subclasses.
                                                                Herança
• Duas subclasses de uma mesma classe podem ter              Poliformismo
  implementações completamente diferentes de um
  mesmo método, o que leva os objetos a se
  comportarem de forma diferente, dependendo do seu         Programação
  tipo (classe).                                             Orientada a
                                                              Objetos II
                                                         Prof. Pedro Felipe Teixeira
                                                         Tecnólogo em Mecatrônica
                                                         Industrial
                                                         EEEP Capelão Frei Orlando
  Início     Vídeos     NetBeans     Link’s
Poliformismo                     Início
                                                               Orientação a
• Exemplificando:                                                Objetos
                                                                  Objetos
• Podemos imaginar um programa que faça a impressão
  de um relatório, por meio de uma classe chamada               Mensagens
  Impressora, que é uma interface de acesso às
  funcionalidades da impressora usada, por meio de um              Classe
  driver fornecido pelo fabricante.
                                                                 Abstração

• Uma impressora a laser tem um mecanismo de                  Encapsulamento
  impressão totalmente diferente de uma impressora a
  jato de tinta, mas isso não importa para o programa.            Herança

                                                               Poliformismo
• Ele manda uma simples mensagem de imprimir para a
  impressora, e o modo como a impressora imprime no
  papel varia de acordo com o tipo de impressora usada,       Programação
  ou seja, a impressão se dá de formas diferentes para a       Orientada a
                                                                Objetos II
  mesma mensagem de imprimir.                              Prof. Pedro Felipe Teixeira
                                                           Tecnólogo em Mecatrônica
                                                           Industrial
                                                           EEEP Capelão Frei Orlando
  Início     Vídeos     NetBeans     Link’s
Poliformismo            Início
                                                Orientação a
                                                  Objetos
                                                   Objetos

                                                 Mensagens

                                                    Classe

                                                  Abstração

                                               Encapsulamento

                                                   Herança

                                                Poliformismo


                                               Programação
                                                Orientada a
                                                 Objetos II
                                            Prof. Pedro Felipe Teixeira
                                            Tecnólogo em Mecatrônica
                                            Industrial
                                            EEEP Capelão Frei Orlando
Início   Vídeos   NetBeans     Link’s
Poliformismo                     Início
                                                               Orientação a
• Alguns linguagens promovem o polimorfismo                      Objetos
  principalmente através do uso de classes abstratas e            Objetos
  interfaces, como é o caso da tecnologia Java.
                                                                Mensagens

                                                                   Classe
• Classes abstratas são classes que não podem gerar
  instâncias de objetos e que possuem um ou mais                 Abstração
  métodos sem implementação, deixando para suas
                                                              Encapsulamento
  subclasses a tarefa de implementar estes métodos
  abstratos.                                                      Herança

                                                               Poliformismo
• Interfaces são um tipo de contrato que algumas classes
  têm de seguir, ou seja, as interfaces apenas definem
                                                              Programação
  métodos abstratos que as classes que implementam             Orientada a
                                                                Objetos II
  esta interface têm de implementar.                       Prof. Pedro Felipe Teixeira
                                                           Tecnólogo em Mecatrônica
                                                           Industrial
                                                           EEEP Capelão Frei Orlando
  Início      Vídeos    NetBeans      Link’s
Link’s            Início
                                                        Orientação a
• http://jedersonsecundino.wordpress.com/                 Objetos
                                                           Objetos

• http://omadson.wordpress.com/                          Mensagens

                                                            Classe
• http://www.guanabara.info/                              Abstração

                                                       Encapsulamento
• http://www.guj.com.br/
                                                           Herança

                                                        Poliformismo


                                                       Programação
                                                        Orientada a
                                                         Objetos II
                                                    Prof. Pedro Felipe Teixeira
                                                    Tecnólogo em Mecatrônica
                                                    Industrial
                                                    EEEP Capelão Frei Orlando
  Início   Vídeos   NetBeans      Link’s

Weitere ähnliche Inhalte

Empfohlen

AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Empfohlen (20)

AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 

Orientação a Objetos conceitos

  • 1. POO II Início Orientação a • Ementa Objetos Objetos – Programa de disciplina Mensagens – Metodologia de Avaliação Classe • Projetos Abstração – Grupos de Estudo Encapsulamento – Conclusão dos Projetos Herança – JAVA embarcados Poliformismo Programação Orientada a Objetos II Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 2. Introdução Início Orientação a Objetos Programação Orientada Objetos • A orientação a objetos (OO) foi concebida na década de 70. Mensagens • Origem na linguagem SIMULA-67 (década de 60 - Noruega), que já Classe implementava alguns conceitos da OO. Abstração • SIMULA-68 foi a primeira linguagem a suportar os conceitos da OO. Encapsulamento • Smaltalk, criada pela Xerox, popularizou e incentivou a OO. Herança • Outras linguagens OO: C++, Object Pascal (Delphi), C#, Java. Poliformismo • Java, de fato, popularizou a Orientação a Objetos. Programação Orientada a Objetos II Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 3. Orientação a Objetos Início Orientação a Objetos Objetos •Técnicas de programação tradicionais Mensagens •As técnicas de programação tradicionais, como por exemplo a “decomposição funcional”, leva o desenvolvedor a decompor o Classe sistema em partes menores (funções), criando um emaranhado de inúmeras funções que chamam umas às outras. Abstração •Geralmente não há separação de conceitos e responsabilidades, Encapsulamento causando dependências enormes no sistema, dificultando futuras manutenções no código do programa. Herança Poliformismo •Não existe muito reaproveitamento de código, ao contrário, muitas vezes se tem muito código duplicado. Programação Orientada a Objetos II Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 4. Orientação a Objetos Início Orientação a Objetos Técnicas de programação tradicionais Objetos É a famosa programação espaguete... Mensagens Classe Abstração Encapsulamento Herança Poliformismo Programação Orientada a Objetos II Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 5. Orientação a Objetos Início Orientação a Objetos Objetos •O paradigma da Orientação a Objetos, ou Programação Orientada a Objetos (POO ou OOP), eleva a programação e o desenvolvimento de Mensagens sistemas para um novo patamar. Classe •A OO é um mecanismo moderno que ajuda a definir a estrutura de programas baseada nos conceitos do mundo real, sejam eles reais ou Abstração abstratos. Encapsulamento •A OO permite criar programas componentizados, separando as partes do sistema por responsabilidades e fazendo com que essas Herança partes se comuniquem entre si, por meio de mensagens. Poliformismo •Essas partes do sistemas são chamadas de OBJETOS. Programação Orientada a Objetos II Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 6. Orientação a Objetos Início Orientação a Objetos Objetos •A OO é mais intuitiva e fácil de aprender do que as técnicas tradicionais, pois foca o problema em conceitos do mundo real. Mensagens •Dentre as vantagens que a OO proporciona, podemos destacar: Classe • aumento de produtividade • reuso de código Abstração • redução das linhas de código programadas • separação de responsabilidades Encapsulamento • maior flexibilidade do sistema • facilidade na manutenção, dentre outras vantagens. Herança Poliformismo Programação Orientada a Objetos II Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 7. Orientação a Objetos Início Orientação a Objetos Objetos •A OO introduz e enfatiza os seguintes conceitos: • Objeto Mensagens • Mensagem Classe • Classe • Abstração Abstração • Encapsulamento Encapsulamento • Herança • Polimorfismo Herança Poliformismo Programação Orientada a Objetos II Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 8. Objetos Início Orientação a • Objetos são a chave para se compreender a tecnologia Objetos orientada a objetos. Você olha ao seu redor e tudo o Objetos que vê são objetos: carro, mesa, janela, livro, pessoa, etc. Mensagens Classe • Os objetos do mundo real têm duas características em comum: ESTADO e COMPORTAMENTO. Abstração • Estado Encapsulamento – O estado de um objeto revela seus dados importantes. Por exemplo, uma,pessoa tem: idade, peso, altura, cor de Herança cabelo, cor da pele. Poliformismo • Comportamento – O comportamento são as ações que aquele objeto pode Programação Orientada a exercer ou executar. Por exemplo, uma pessoa pode: andar, Objetos II falar, ouvir, pular. Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 9. Objetos Início Orientação a • Esses objetos podem ser tanto objetos concretos Objetos (carro, livro, nota fiscal), quanto conceitos abstratos Objetos (conta corrente, venda, pessoa jurídica). Mensagens Classe • Na Orientação a Objetos, os objetos do mundo real são modelados e representados no mundo computacional, Abstração ou seja, dentro do sistema, por meio de objetos de Encapsulamento sotware. Herança • Cada objeto deve ser conhecido, bem definido e ter seu Poliformismo limite e um significado dentro do sistema. Programação Orientada a • Os objetos de software, assim como os objetos do Objetos II mundo real, também possuem estado e Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica comportamento. Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 10. Objeto Início Orientação a • Um objeto de software mantém seu estado em uma ou Objetos mais de suas variáveis. Ele implementa seu Objetos comportamento através de seus métodos. Mensagens Classe • Método é o mesmo que função ou procedimento. Abstração • Por definição: Um objeto é um pedaço de software que Encapsulamento possui variáveis (estado) e métodos (comportamento). Herança Poliformismo Programação Orientada a Objetos II Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 11. Objetos Início Orientação a • Um sistema pode conter um ou inúmeros objetos Objetos ativos. Cada objeto ativo no sistema em particular Objetos também é chamado de instância. As diferentes Mensagens instâncias possuem seu próprio estado. Classe • O exemplo abaixo mostra várias instâncias de pessoas. Abstração Encapsulamento Herança Poliformismo Programação Orientada a Objetos II Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 12. Objetos Início Orientação a • Cada instância de pessoa possui um estado diferente Objetos em particular, como visto na última figura. Objetos • Porém, cada instância, além do estado, também possui Mensagens seus métodos(comportamento) que operam sobre o próprio estado. Em outras palavras, para pular, cada Classe pessoa vai fazer uma determinada força dependendo Abstração dasua idade, altura e peso, por exemplo. Encapsulamento • A idéia é que cada objeto seja responsável por seus dados (estado) e seja capaz de realizar as próprias Herança operações que lhe foram atribuídas (comportamento). Poliformismo Programação Orientada a Objetos II Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 13. Mensagem Início Orientação a • Um objeto por si só não significa muito em um sistema. Objetos Para ter algum sentido e valor esses objetos precisam Objetos interagir e comunicar-se entre si. Mensagens Classe • Os objetos se comunicam por meio de mensagens. Abstração Encapsulamento Herança Poliformismo Programação • Quando um objeto A quer se comunicar com um objeto Orientada a Objetos II B é enviada uma mensagem de A para B. Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 14. Mesagem Início Orientação a • Enviar uma mensagem significa executar um método. Objetos • Então, se A envia uma mensagem para B, podemos Objetos entender como o objeto A executando um método do Mensagens objeto B. Classe • As mensagens são compostas por três partes: – Objeto a quem a mensagem é endereçada Abstração – Nome do método a ser chamado Encapsulamento – Parâmetros que o método recebe Herança Poliformismo Programação Orientada a Objetos II Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 15. Classe Início Orientação a • No mundo real freqüentemente percebemos vários Objetos objetos de um mesmo tipo. Por exemplo: seu carro é Objetos um dos muitos carros existentes no mundo. Mensagens Classe • Usando a terminologia OO, dizemos que um carro em particular é uma instância da classe de objetos Abstração conhecida como carros. Encapsulamento • Os carros, em geral, possuem estado (cor, potência do Herança motor, combutível) e comportamento (ligar, acelerar, Poliformismo brecar, mudar marcha) em comum. Programação Orientada a Objetos II Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 16. Classe Início Orientação a • O estado de cada carro é independente e pode ser Objetos diferente do estado dos outros carros. Cada carro pode Objetos ter uma cor diferentes, por exemplo. Mensagens Classe • A partir dessas semelhanças, os fabricantes de veículos tiram vantagemdisso para padronizar a construção de Abstração carros de um mesmo tipo, definindo um modelo único Encapsulamento com características iguais para todos os carros a serem produzidos. Herança Poliformismo • Na Orientação a Objetos também é possível ter vários objetos do mesmo tipo, que compartilham Programação caracteríscas em comum. Orientada a Objetos II Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 17. Classe Início Orientação a • Tirando vantagem dessa semelhança entre alguns Objetos objetos, também é possível criar modelos para esses Objetos objetos. Esse modelo é chamado de CLASSE. As classes Mensagens são tipos que podem ser criados. Classe • Por definição: Uma classe é um modelo (protótipo) que Abstração define as variáveis (estado) e os métodos Encapsulamento (comportamento) comuns a todos os objetos do mesmo tipo. Herança Poliformismo Programação Orientada a Objetos II Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 18. Classe Início Orientação a • Na classe são definidas as variáveis e implementados os Objetos métodos. Objetos • Os objetos são criados a partir de suas classes. Mensagens • A cada objeto criado o sistema aloca memória para o novo objeto e suas variáveis. Classe Abstração Encapsulamento Herança Poliformismo Programação • Comumente fazem confusão entre classes e objetos. Lembre- Orientada a se que classe define as características comuns e os objetos Objetos II Prof. Pedro Felipe Teixeira são instâncias dessas classes, com estado próprio. Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 19. Abstração Início Orientação a • Abstração é a habilidade e a capacidade de se modelar Objetos conceitos, entidades, elementos, problemas e Objetos características do mundo real, de um domínio do problema em questão, levando-se em conta apenas os Mensagens detalhes importantes para a resolução do problema e Classe desprezando coisas que não têm importância no contexto. Abstração Encapsulamento • Se pensarmos no conceito de “conta corrente” bancária e abstraírmos este conceito, podemos identificar Herança detalhes comuns, como o número da conta, número da agência e saldo; e operações como débito em conta, Poliformismo depósito e extrato da conta. Basicamente essas são as características de conta corrente para todos os bancos, Programação apesar de um ou outro banco ter uma política de Orientada a Objetos II descontos de taxas etc. Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 20. Encapsulamento Início Orientação a • Na OO, encapsulamento é o mecanismo utilizado para Objetos disponibilizar métodos que operam sobre os dados e Objetos que protegem o acesso direto indevido aos atributos de Mensagens uma instância fora da classe onde estes foram declarados. Classe Abstração • Esta proteção consiste em se usar modificadores de Encapsulamento acesso mais restritivos sobre os atributos definidos na classe e fornecendo métodos que alteram os valores Herança destes atributos de alguma forma. Poliformismo • O encapsulamento ajuda a prevenir o problema de Programação interferência externa indevida sobre os dados de um Orientada a Objetos II objeto, como objetos que possam alterar os dados de Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica outros objetos indevidamente. Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 21. Encapsulamento Início Orientação a • Um exemplo deste problema pode ser o saldo da conta Objetos bancária. Objetos Mensagens • O saldo certamente não pode ser alterado ou Classe manipulado diretamente, mas sim através de métodos adequados para isso, como métodos que fazem Abstração lançamentos de débitos e créditos. Encapsulamento • A alteração direta do saldo causaria um problema de Herança cálculos e inconsistência de dados. Poliformismo Programação Orientada a Objetos II Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 22. Encapsulamento Início Orientação a • Justamente por isso devemos criar classes bem Objetos encapsuladas, que forneçam métodos adequados para Objetos operar sobre os dados dos objetos daquela classe. Mensagens Classe • O uso de encapsulamento também evita que um programa torne-se tão interdependente que uma Abstração pequena mudança tenha grandes efeitos colaterais. Encapsulamento Herança Poliformismo Programação Orientada a Objetos II Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 23. Herança Início Orientação a • Herança é um mecanismo da OO que permite criar Objetos novas classes a partir de classes já existentes, Objetos aproveitando-se das características existentes na classe Mensagens a ser extendida. Classe • Este mecanismo é muito interessante pois promove um Abstração grande reuso e reaproveitamento de código existente. Encapsulamento • Com a herança é possível criar classes derivadas Herança (subclasses) a partir de classes bases (superclasses). As Poliformismo subclasses são mais especializadas do que as suas superclasses, mais genéricas. Programação Orientada a Objetos II • As subclasses herdam todas as características de suas Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica superclasses, como suas variáveis e métodos. Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 24. Herança Início Orientação a • Imagine que dentro de uma organização empresarial, o Objetos sistema de RH tenha que trabalhar com os diferentes Objetos níveis hierárquicos da empresa, desde o funcionário de baixo escalão até o seu presidente. Mensagens • Todos são funcionários da empresa, porém cada um Classe com um cargo diferente. Mesmo a secretária, o pessoal da limpeza, o diretor e o presidente possuem um Abstração número de identificação, além de salário e outras Encapsulamento características em comum. Herança • Essas características em comum podem ser reunidas em um tipo de classe em comum, e cada nível da Poliformismo hierarquia ser tratado como um novo tipo, mas aproveitando-se dos tipos já criados, através da Programação herança. Orientada a Objetos II Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 25. Herança Início Orientação a Objetos Objetos Mensagens Classe Abstração Encapsulamento Herança Poliformismo Programação Orientada a Objetos II Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 26. Herança Início Orientação a • Os subtipos, além de herdarem todas as características Objetos de seus supertipos, também podem adicionar mais Objetos características, seja na forma de variáveis e/ou Mensagens métodos adicionais, bem como reescrever métodos já existentes na superclasse (polimorfismo). Classe Abstração • A herança permite vários níveis na hierarquia de Encapsulamento classes, podendo criar tantos subtipos quanto necessário, até se chegar no nível de especialização Herança desejado. Poliformismo • Podemos tratar subtipos como se fossem seus Programação supertipos, por exemplo o sistema de RH pode tratar Orientada a Objetos II uma instância de Presidente como se fosse um objeto Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica do tipo Funcionário, em determinada funcionalidade. Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 27. Herança Início Orientação a Objetos • Porém não é possível tratar um supertipo como se fosse um Objetos subtipo, a não ser que o objeto em questão seja realmente do subtipo desejado e a linguagem suporte este tipo de Mensagens tratamento, seja por meio de conversão de tipos ou outro mecanismo. Classe • Algumas linguagens de programação permitem herança Abstração múltipla, ou seja, uma classe pode estender características de várias classes ao mesmo tempo. É o caso do C++. Encapsulamento • Outras linguagens não permitem herança múltipla, por se Herança tratar de algo perigo se não usada corretamente. É o caso do Java. Poliformismo • Na Orientação a Objetos as palavras classe base, supertipo, Programação superclasse, classe pai e classe mãe são sinônimos, bem Orientada a como as palavras classe derivada, subtipo, subclasse e classe Objetos II filha também são sinônimos. Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 28. Poliformismo Início Orientação a • Formalmente polimorfismo quer dizer “várias formas”. Objetos Objetos • No caso da OO, polimorfismo denota uma situação na qual um objeto pode se comportar de maneiras Mensagens diferentes ao receber uma mensagem, dependendo do seu tipo de criação. Classe Abstração • O poliformismo é alcançado com auxílio do uso de herança nas classes e a reescrita (overriding) de Encapsulamento métodos das superclasses nas suas subclasses. Herança • Duas subclasses de uma mesma classe podem ter Poliformismo implementações completamente diferentes de um mesmo método, o que leva os objetos a se comportarem de forma diferente, dependendo do seu Programação tipo (classe). Orientada a Objetos II Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 29. Poliformismo Início Orientação a • Exemplificando: Objetos Objetos • Podemos imaginar um programa que faça a impressão de um relatório, por meio de uma classe chamada Mensagens Impressora, que é uma interface de acesso às funcionalidades da impressora usada, por meio de um Classe driver fornecido pelo fabricante. Abstração • Uma impressora a laser tem um mecanismo de Encapsulamento impressão totalmente diferente de uma impressora a jato de tinta, mas isso não importa para o programa. Herança Poliformismo • Ele manda uma simples mensagem de imprimir para a impressora, e o modo como a impressora imprime no papel varia de acordo com o tipo de impressora usada, Programação ou seja, a impressão se dá de formas diferentes para a Orientada a Objetos II mesma mensagem de imprimir. Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 30. Poliformismo Início Orientação a Objetos Objetos Mensagens Classe Abstração Encapsulamento Herança Poliformismo Programação Orientada a Objetos II Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 31. Poliformismo Início Orientação a • Alguns linguagens promovem o polimorfismo Objetos principalmente através do uso de classes abstratas e Objetos interfaces, como é o caso da tecnologia Java. Mensagens Classe • Classes abstratas são classes que não podem gerar instâncias de objetos e que possuem um ou mais Abstração métodos sem implementação, deixando para suas Encapsulamento subclasses a tarefa de implementar estes métodos abstratos. Herança Poliformismo • Interfaces são um tipo de contrato que algumas classes têm de seguir, ou seja, as interfaces apenas definem Programação métodos abstratos que as classes que implementam Orientada a Objetos II esta interface têm de implementar. Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s
  • 32.
  • 33. Link’s Início Orientação a • http://jedersonsecundino.wordpress.com/ Objetos Objetos • http://omadson.wordpress.com/ Mensagens Classe • http://www.guanabara.info/ Abstração Encapsulamento • http://www.guj.com.br/ Herança Poliformismo Programação Orientada a Objetos II Prof. Pedro Felipe Teixeira Tecnólogo em Mecatrônica Industrial EEEP Capelão Frei Orlando Início Vídeos NetBeans Link’s