Programação Orientada a Objetos/Classes e Objetos: diferenças entre revisões
[edição não verificada] | [edição não verificada] |
Conteúdo apagado Conteúdo adicionado
m moveu Programação orientada a objetos/Classes e Objetos para Programação Orientada a Objetos/Classes e Objetos: correção do título |
Sem resumo de edição |
||
Linha 1:
{{esboço}}
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).▼
== Classes ==▼
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'''.
<source lang="C">▼
int x = 10;▼
</source>▼
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.
<source lang="C">▼
Integer var_x(10);▼
</source>▼
em que ''Integer'' é a classe, ''var_x'' é o objeto e ''(10)'' é uma forma de inicializar o objeto com o valor ''10''.▼
Um '''objeto''' é mais do que apenas uma variável ou uma estrutura, assim como uma '''classe''' é mais do que um tipo; a diferença fundamental é que a eles estão associados '''métodos''' de forma natural.▼
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 que retorna um inteiro.▼
Por outro lado, o '''objeto''' ''var_x'' 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 ''var_x'' (de modo que ''var_x'' 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 ''var_x'' e outras classes - como converter ''var_x'' para um número racional ou um conjunto.▼
▲== Classes ==
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 ==
Um '''objeto''', na vida real, é qualquer coisa a qual pudermos dar um nome.
Linha 38 ⟶ 25:
O conjunto de valores dos atributos de um determinado objeto é chamado de estado.
== Comparação com linguagem estruturada ==
▲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):
▲<source lang="C">
▲</source>
''int'' é o tipo e ''x'' é a variável. Isso é semelhante a seguinte declaração (usando C++ orientado a objetos):
▲<source lang="C">
▲</source>
▲
▲
▲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
▲Por outro lado, o '''objeto''' ''
== Ver também ==
{{wikipedia|Classe (programação)}}
* Classes e objetos em [[Programar em C++/Classes|C++]]
|