Conceitos essenciais
- Classe representa um conjunto
de objetos com características afins. Uma classe define o comportamento
dos objetos através de seus métodos. Exemplo Humanos.
- Subclasse é uma nova classe
que herda características de sua classe ancestral
- Objeto / 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. Exemplo de objetos da classe Humanos: João,
José, Maria
- Atributo é característico de um
objeto. Basicamente a estrutura de dados que vai representar a classe.
Exemplos: Funcionário: nome, endereço, telefone.
Carro: nome, marca, ano, cor, …; Livro: autor,
editora, ano. Por sua vez, os atributos possuem valores. Por exemplo, o
atributo cor pode conter o valor azul. O conjunto de valores dos atributos de
um determinado objeto é chamado de estado
- Método definem as habilidades dos objectos. Um método em uma classe é apenas uma definição. Dentro do programa, a utilização de um método deve afectar apenas um objeto em particular.
- Mensagem é uma chamada a um
objecto para invocar um de seus métodos, activando um comportamento
descrito por sua classe. Também pode ser direccionada directamente a uma
classe (através de uma invocação a um método estático)
- Herança (ou generalização) é o
mecanismo pelo qual uma classe (subclasse) pode estender outra classe (superclasse),
aproveitando seus comportamentos (métodos) e variáveis possíveis
(atributos). Um exemplo de herança: Mamífero é superclasse de Humano. Ou
seja, um Humano é um mamífero. Há herança múltipla quando uma subclasse
possui mais de uma superclasse. Essa relação é normalmente chamada de
relação "é um"
- 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.
- 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 consiste em quatro
propriedades que a linguagem pode ter (atente para o fato de que nem toda
linguagem orientada a objeto 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)
- Interface é um contrato entre a
classe e o mundo externo. Quando uma classe implementa uma interface, ela
está comprometida a fornecer o comportamento publicado pela interface.
- Pacotes (ou Namespaces) são
referências para organização lógica de classes e interfaces
Sem comentários:
Enviar um comentário