Introdução à Orientação a Objeto
A orientação a objetos é um paradigma fundamentado em trazer os objetos da vida real para a representar uma entidade na aplicação através de um tipo bem definido.
Os objetos propriamente ditos são instancias de uma classe.
A classe, o principal símbolo da orientação a objetos, é um modelo que representa uma entidade, ou seja, a estrutura de um objeto é baseado em uma classe.
Por exemplo, uma classe Pessoa é um modelo para um ou mais objetos, sendo que cada um desses tem uma área na memória.
Uma classe é formada por membros, sendo os principais os atributos (variáveis) e as operações (funções).
Atributos
- Determinam o estado do objeto, por exemplo, os campos Nome e Idade da classe Pessoa representam o nome e idade da pessoa respectivamente.
- Características que um objeto pode assumir.
Operações
- Funcionalidades que um objeto pode exercer: a função Falar da classe Pessoa, por exemplo, representa o ato de falar da pessoa.
- Ações que acontecem a um objeto.
As principais características da orientação a objetos são: herança, polimorfismo, abstração e encapsulamento.
Herança
A herança define um relacionamento pai/filho entre tipos, o que origina a hierarquia das classes.
C# suporta dois tipos de herança: a herança de implementação e a herança de interface.
Herança de Implementação
- Pressupõe que a classe derivada (filho) seja baseada em uma classe existente.
- Ela é chamada de classe base (pai), onde os membros visíveis são compartilhados.
- As classes, tanto base quanto derivadas, são declaradas com a palavra-chave class.
- Um exemplo são os objetos do .NET Framework: todos são herdados da classe System.Object, ou seja, o método ToString de um objeto da classe System.Int32 é, na verdade, originado pelo System.Object.
Herança de Interface
- Pressupõe que uma classe derivada seja baseada em uma interface existente, onde as operações são pressupostas.
- Porém, a classe derivada é obrigada a implementar cada operação da interface.
- As interfaces são declaradas com a palavra-chave interface.
- Um exemplo é o objeto System.Collections.ArrayList do .NET Framework, que suporta as interfaces IList, ICollection, IEnumerable e ICloneable.
Em C#, a classe derivada somente poderá assumir uma classe base na herança de implementação e uma ou mais ‘interfaces’ na herança de ‘interface’.
Para uma classe herdar de outra na declaração da classe, são colocados dois-pontos (:), seguidos da classe base e/ou das ‘interfaces’ separadas por vírgulas (,).
Trabalhar com herança permite a criação de hierarquia de classes.
Polimorfismo
O polimorfismo é a habilidade de suportar uma ou mais formas.
Ele possibilita a capacidade de escrever classes como unidades adicionando-as ou removendo-as conforme a necessidade.
O principal objetivo do polimorfismo é diminuir a quantidade de código escrito, aumentando a clareza e a facilidade de manutenção.
Abstração
A abstração define as características essenciais de um objeto que o distingue de outros objetos quaisquer.
Por meio da abstração, obtemos uma separação do que é essencial para o comportamento do objeto de sua implementação.
Quando definimos uma hierarquia de classes, partimos das classes básicas para as específicas. Portanto, ao implementarmos uma hierarquia de classes, devemos ter em mente a abstração, ou seja, criar uma classe base com os comportamentos básicos de um objeto, implementando-a de forma especializada por meio das classes concretas.
A palavra-chave ‘abstract’ é usada para indicar esse comportamento.
Encapsulamento
O encapsulamento consiste em esconder os detalhes de implementação de um objeto, principalmente se esses detalhes não fizerem parte das características essenciais do objeto.
Referencias:
GALUPPO, F.; MATHEUS, V.; SANTOS, W. Desenvolvendo com C#. Porto Alegre: Bookman, 2003. 496p.
Top comments (0)