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
editarUma 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
editarUm 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
editarUma 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- Classes e objetos em C++
- Classes em Python
- Classes em PHP
- Classes em ActionScript
- Características orientadas a objeto em Java