DEV Community

MarianaCaetanoCosta
MarianaCaetanoCosta

Posted on

Orientação a Objetos

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)