Programação Orientada a Objetos/Classes e Objetos

Esta página é um esboço de informática. Ampliando-a você ajudará a melhorar o Wikilivros.

Classes

editar

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 outras palavras, uma classe descreve os serviços oferecidos 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.

Uma classe representa um conjunto de objetos com características afins. Uma classe define o comportamento dos objetos através de seus métodos, e quais estados ele é capaz de manter através de seus atributos.

Objetos

editar

Um objeto, na vida real, é qualquer coisa a qual pudermos dar um nome.

Um objeto, em programação orientada a objetos, é uma instância (ou seja, um exemplar) de uma classe. A Wikilivros é um exemplo de Wiki, ou, a Wikilivros é uma instância de Wiki. Isto poderia ser representado em um programa orientado a objetos com uma classe chamada Wiki e um objeto do tipo Wiki chamado Wikilivros.

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.

Atributos são características de um objeto. Basicamente a estrutura de dados que vai representar a classe.

Exemplos: um objeto da classe "Funcionário" teria como atributos "nome", "endereço", "telefone", "CPF", etc

O conjunto de valores dos atributos de um determinado objeto é chamado de estado.

Comparação com linguagem estruturada

editar

Uma forma de se entender Classes e Objetos é comparando aos termos da programação estruturada tipos e variáveis (ponteiros, na verdade, mas veremos isso mais adiante).

Por exemplo, na seguinte declaração (usando linguagem de programação C):

  int x;

int é o tipo e x é a variável. Isso é semelhante a seguinte declaração (usando C++ orientado a objetos):

  Integer y;

onde Integer é a classe (tipo de dado), e y é o objeto (a variável).

Entretanto, um objeto é mais do que apenas uma variável ou uma estrutura, e uma classe é mais do que um tipo.

No exemplo acima, à variável x podemos apenas aplicar funções que recebem inteiros como argumento, assim como para alterar o valor de x devemos usar instruções do tipo x = f(...) em que f é uma função com tipo de retorno inteiro.

Por outro lado, o objeto y tem várias outras possibilidades. Dependendo de como a classe Integer tenha sido implementada, pode-se extrair informações sobre o número de bytes de y (de modo que y não precise ter um teto - ou seja, temos inteiros de precisão limitada apenas à capacidade de armazenamento e processamento da máquina), ou fazer conversões entre y e outras classes - como converter y para um número racional ou um conjunto.


Ver também

editar
 
Wikipedia
A Wikipédia tem mais sobre este assunto:
Classe (programação)