Classe (programação)

Em orientação a objetos, uma classe é uma estrutura que abstrai um conjunto de objetos com características similares. Uma classe define o comportamento de seus objetos através de métodos e os estados possíveis destes objetos através de atributos. Em outros termos, uma classe descreve os serviços providos por seus objetos e quais informações eles podem armazenar.
Classes não são diretamente suportadas em todas as linguagens, e são necessárias para que uma linguagem seja orientada a objetos. Classes são os elementos primordiais de um diagrama de classes.

Estrutura da classe
     Uma classe define estado e comportamento de um objeto implementando metodos e atributos.Atributos –  indicam as possíveis informações armazenadas por um objeto de uma classe, representando o estado de cada objeto. Método – Os métodos são procedimentos que formam os comportamentos e serviços oferecidos por objetos de uma classe.
Construtores – definem o comportamento no momento da criação de um objeto de uma classe.
Destrutor – define o comportamento no momento da destruição do objeto de uma classe. Normalmente, como em C++, é utilizado para liberar recursos do sistema (como memória), já em outras linguagens, como em Java e C♯ isto é realizado de modo automático pelo Garbage collector.
Propriedades – define o acesso a um estado do objeto.
Eventos – define um ponto em que o objeto pode chamar outros procedimentos de acordo com seu comportamento e estado interno.

Encapsulamento

    Em linguagens orientadas a objetos é possivel encapsular um objeto , isto é, limitando o acesso  a atributos de uma classe exclusivamente através de seus métodos. Para isso essas linguagens oferecem limitadores de acesso para cada membro de uma classe.

público (public) – o membro pode ser acessado por qualquer classe. Os membros públicos de uma classe definem sua interface.
protegido (protected) – o membro pode ser acessado apenas pela própria classe e suas sub-classes.
privado (private) – o membro pode ser acessado apenas pela própria classe.

No exemplo abaixo, implementado em Java, a classe Pessoa permite o acesso ao atributo nome somente através dos métodos setNome e getNome.

public class Pessoa {
private String nome;

public String getNome() {
return nome;
}

public void setNome(String nome) {
this.nome = nome;
}
}

Herança


    A herança é um relacionamento pelo qual uma classe, chamada de sub-classe, herda todos comportamentos e estados possíveis de outra classe, chamada de super-classe ou classe base. É permitido que a sub-classe estenda os comportamentos e estados possíveis da super-classe (por isso este relacionamento também é chamado de extensão). Essa extensão ocorre adicionando novos membros a sub-classe, como novos métodos e atributos.

É também possível que a sub-classe altere os comportamentos e estados possíveis da super-classe. Neste caso, a sub-classe sobrescreve membros da super-classe, tipicamente métodos.

Polimorfismo

Na programação orientada a objetos, o polimorfismo permite que referências de tipos de classes mais abstratas representem o comportamento das classes concretas que referenciam. Assim, um mesmo método pode apresentar várias formas, de acordo com seu contexto. O polimorfismo é importante pois permite que a semântica de uma interface seja efetivamente separada da implementação que a representa. O termo polimorfismo é originário do grego e significa ‘muitas formas’ (poli = muitas, morphos = formas).

Associação

Uma associação é um vínculo que permite que objetos de uma ou mais classes se relacionem. Através destes vínculos é possível que um objeto convoque comportamentos e estados de outros objetos.

Associação

As associações podem ser:
  • unárias – quando a associação ocorre entre objetos de uma mesma classe.
  • binárias – quando a associação ocorre entre dois objetos de classes distintas.
  • múltiplas – quando a associação ocorre entre mais de dois objetos de classes distintas.
Cada associação possui características de:
  • cardinalidade ou multiplicidade – determina quantos objetos no sistema são possíveis em cada vértice da associação.
  • navegação – se é possível para cada objeto acessar outro objeto da mesma associação.
No exemplo de associação unária acima, cada pessoa tem um único pai (cardinalidade 1) e qualquer número de filhos (cardinalidade *). De acordo com a seta de navegação, só é possível navegar para o pai de cada pessoa. Desta forma cada objeto da classe Pessoa consegue acessar seu objeto pai, mas não consegue acessar seus objetos filhos.


Agregação

Tipo de relacionamento com características todo-parte, onde existe um grau de coesão entre o todo e as partes menos intenso, podendo haver certo grau de independência entre eles.

Composição

Tipo de relacionamento com características todo-parte, onde existe um alto grau de coesão entre o todo e as partes, com total grau de dependência entre eles (todo e as partes). Desta forma, se o todo não existir, as partes também não existirão.
Um exemplo de composição é a mão:
Uma mão é composta por dedos. Os dedos compõem a mão.
Não há lógica em existir um dedo sem mão, porém pode-se ter uma mão sem um ou mais dedos.
Classes abstratas e concretas
Uma classe abstrata normalmente possui métodos abstratos. Esses métodos são implementados nas suas classes derivadas concretas com o objetivo de definir o comportamento específico. O método abstrato define apenas a assinatura do método e, portanto, não contém código.
Por outro lado, as classes concretas implementam todos os seus métodos e permitem a criação de instâncias. Uma classe concreta não possui métodos abstratos e, geralmente, quando utilizadas neste contexto, são classes derivadas de uma classe abstrata.
Anúncios
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: