Resumo dos conceitos de Orientação a Objetos

Conceitos fundamentais da Orientação a Objetos:

  • Classe: representa um conjunto de objetos com características afins. Uma classe define o comportamento dos objetos, através de métodos, e quais estados ele é capaz de manter, através de atributos.


  • Estado: O estado de um objeto é determinado pelo conjunto dos valores dos atributos. Para evitar estados inválidos ou inconsistentes e acessos indevidos, os atributos devem ser apenas manipuláveis por operação do próprio objeto.


  • Comportamento: Um comportamento é uma ação executada por um objeto em resposta a alguma mensagem ou mudança de estado. Ele é acionado pela execução de algum método. Entretanto, essa relação não é explícita, já que um mesmo comportamento pode ser implementado por vários métodos. Os métodos são operações (ações) explicitamente detalhadas e codificadas nas classes. O conjunto das operações públicas de um objeto forma a lista de serviços disponibilizados. A esse serviço dá-se o nome de interface do objeto. A interface é um contrato com o mundo exterior, informando o que um objeto pode fazer, mas não sua implementação.

  • Objeto: é uma instância de uma classe. Um objeto é capaz de armazenar estados através de seus atributos e reagir a mensagens enviadas a ele, assim como se relacionar e enviar mensagens a outros objetos.


  • Mensagem: é uma chamada a um objeto para invocar um de seus métodos, ativando um comportamento descrito por sua classe. Também pode ser direcionada diretamente a uma classe (através de uma invocação a um método dinâmico);


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

  • Associação: é o mecanismo pelo qual um objeto utiliza os recursos de outro. Pode tratar-se de uma associação simples "usa um" ou de um acoplamento "parte de". Por exemplo: Um humano usa um telefone. A tecla "1" é parte de um telefone;


  • Encapsulamento: consiste na separação de aspectos internos e externos de um objeto. Este mecanismo é utilizado amplamente para impedir o acesso direto ao estado de um objeto (seus atributos), 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 (os botões, o monofone e os sinais de tom);



  • Abstração: é a habilidade de concentrar nos aspectos essenciais de um contexto qualquer, ignorando características menos importantes ou acidentais. Em modelagem orientada a objetos, uma classe é uma abstração de entidades existentes no domínio do sistema de software;



  • Polimorfismo: é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma assinatura (lista de parâmetros e retorno) mas comportamentos distintos, especializados para cada classe derivada, usando para tanto uma referência a um objeto do tipo da superclasse. A decisão sobre qual o método que deve ser selecionado, de acordo com o tipo da classe derivada, é tomada em tempo de execução, através do mecanismo de ligação tardia. No caso de polimorfismo, é necessário que os métodos tenham exatamente a mesma identificação, sendo utilizado o mecanismo de redefinição de métodos. Esse mecanismo de redefinição não deve ser confundido com o mecanismo de sobrecarga de métodos.

Nenhum comentário: