Orientação a objetos: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Rfabbri (discussão | contribs)
Linha 215:
 
== Fenômenos e conceitos ==
Metáforas são recorrentes em computação: mensagens, inteiros, etc. Classes e objetos são, em parte, inspirados na teoria de conceitos e fenômenos:<ref name="knud">A Conceptual Framework for Programming Languages: Jørgen Lindskov Knudsen and Kristine Stougaard Thomsen, Department of Computer Science, Aarhus Universitet, PB-192, April 1985.</ref>
 
objetos são, em parte, inspirados na teoria de conceitos e fenômenos<ref name="knud">A Conceptual Framework for Programming Languages: Jørgen Lindskov Knudsen and Kristine Stougaard Thomsen, Department of Computer Science, Aarhus Universitet, PB-192, April 1985.</ref>:
* Um fenômeno é algo que possui uma existência definida na realidade ou na mente, é qualquer coisa real em si.
* Um conceito é uma coleção de fenômenos com propriedades em comum. Os atributos característicos de um conceito são:
Linha 225:
** '''Extensão''': a coleção de fenômenos do conceito.
 
Muitas classes representam conceitos da vida real pois muitos programas administram coisas do mundo real. No entanto, é comum que se faça uso também de conceitos imaginados (e.g. uma tabela hash). Ambos estes fatos favorecem a utilização da lógica fuzzy, mas na prática conceitos aristotélicos são convenientes para a construção de classes.
coisas do mundo real.
No entanto, é comum que se faça uso também de conceitos imaginados (e.g. uma tabela hash).
Ambos estes fatos favorecem a utilização da lógica fuzzy,
mas, na prática, conceitos aristotélicos são convenientes para a construção de classes.
 
O estabelecimento de conceitos a partir de conjuntos de fenômenos é chamado de '''classificação'''. A intenção sendo as propriedades definidoras que são compartilhadas dentre os fenômenos do conceito. A '''exemplificação''' é o oposto da classificação: um subconjunto da extensão do conceito.
chamado de '''classificação'''.
A intenção sendo as propriedades definidoras que são compartilhadas dentre os fenômenos do conceito.
A '''exemplificação''' é o oposto da classificação: um subconjunto da extensão do conceito.
 
'''Agregar''' é formar um conceito que possui um número de partes (outros conceitos), i.e. é formar uma [[holonímia]]. '''Decompor''' é partir um conceito em um número de partes (outros conceitos), é formar
[[meronímias]]. A intenção de um conceito agregado pode ser a intersecção das intenções de suas partes, pode ser a soma de suas intenções, ou pode possuir propriedades adicionais (em que o todo é mais que a soma das partes). Este último caso é útil na escrita de sistemas que envolvem sistemas complexos, e.g. para otimização bioinspiradas como por [[Colônia de formigas (otimização)|colonia de formigas]], ou por [[Optimização por enxame de partículas|enxame de partículas]].
i.e. é formar uma [[holonímia]].
'''Decompor''' é partir um conceito em um número de partes (outros conceitos), é formar
[[meronímias]].
A intenção de um conceito agregado pode ser a intersecção das intenções de suas partes,
pode ser a soma de suas intenções, ou pode possuir propriedades adicionais
(em que o todo é mais que a soma das partes).
Este último caso é útil na escrita de sistemas que envolvem sistemas complexos,
e.g. para otimização bio-inspiradas como por [[Colônia de formigas (otimização)|colonia de formigas]], ou por [[Optimiza%C3%A7%C3%A3o_por_enxame_de_part%C3%ADculas|enxame de partículas]].
 
'''Generalização''' é formar um conceito mais amplo a partir de um (ou mais) conceitos mais estritos, é formar um [[hiperônimo]]. '''Especialização''' é formar um conceito mais estrito a partir de um conceito mais geral, é formar um [[hipônimo]]. A extensão de uma especialização é um subconjunto de sua generalização. A intenção de uma especialização (aristotélica) inclui a intenção de sua generalização. A especialização de um conceito é naturalmente expressa como herança de uma classe por outra, ou pela instanciação de uma classe.
'''Generalização''' é formar um conceito mais amplo a partir de um (ou mais)
conceitos mais estritos, é formar um [[hiperônimo]]. '''Especialização''' é formar um
conceito mais estrito a partir de um conceito mais geral, é formar um [[hipônimo]].
A extensão de uma especialização é um subconjunto de sua generalização.
A intenção de uma especialização (aristotélica) inclui a intenção de sua
generalização.
A especialização de um conceito é naturalmente expressa como herança
de uma classe por outra, ou pela instanciação de uma classe.
 
== Documentação ==