segunda-feira, 27 de setembro de 2010

Programação Orientada por Objectos

Herança é o mecanismo pelo qual uma classe (sub-classe) pode estender outra classe (super-classe), aproveitando seus comportamentos e variáveis possíveis. Um exemplo de herança: Mamífero é super-classe de Humano. Ou seja, um Humano é um mamífero. Há herança múltipla quando uma sub-classe possui mais de uma super-classe. Essa relação é normalmente chamada de relação "é um".


            Polimorfismo consiste em quatro propriedades que a linguagem pode ter (atente para o facto de que nem toda linguagem orientada a objecto tem implementado todos os tipos de polimorfismo):
    • Universal:
      • Inclusão: um ponteiro para classe mãe pode apontar para uma instância de uma classe filha (exemplo em Java: "List lista = new LinkedList ();" (tipo de polimorfismo mais básico que existe).
      • Paramétrico: se restringe ao uso de templates (C++, por exemplo) e generics (Java/C#).
    • Ad-Hoc:
      • Sobrecarga: duas funções/métodos com o mesmo nome mas assinaturas diferentes.
      • Coerção: a linguagem que faz as conversões implicitamente (como por exemplo atribuir um int a um float em C++, isto é aceito mesmo sendo tipos diferentes pois a conversão é feita implicitamente).
            Encapsulamento consiste na separação de aspectos internos e externos de um objecto. Este mecanismo é utilizado amplamente para impedir o acesso directo ao estado de um objecto, disponibilizando externamente apenas os métodos que alteram estes estados. Exemplo: você não precisa conhecer os detalhes dos circuitos de um telefone para utilizá-lo. A carcaça do telefone encapsula esses detalhes, provendo a você uma interface mais amigável.
 
  Abstracção é a habilidade de concentrar nos aspectos essenciais de um contexto qualquer, ignorando características menos importantes ou acidentais. Em modelagem orientada a objectos, uma classe é uma abstracção de entidades existentes no domínio do sistema de software.

 
 

Sem comentários:

Enviar um comentário