28 abril 2011

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.

0 comentários:

Postar um comentário

Cadastre-se

Receba atualizações por email .

Copyright © 2011 PortalTecch.net, Todos os direitos reservados.