Programação (III) - Programação Orientada a Objetos (POO)

Este é o terceiro artigo da série sobre programação e vamos falar aqui sobre POO, que não é a melhor coisa do mundo, mas é o melhor que já vi para a programação nestes meus 25 anos no ramo.

[ Hits: 51.723 ]

Por: Edvaldo Silva de Almeida Júnior em 04/07/2008 | Blog: http://emeraldframework.net


Um pouco de Filosofia



Mas antes de falarmos em nosso tema diretamente, vamos voltar no tempo e discutir a obra de um filósofo grego muito comentado: Aristóteles.

A razão disso é bem simples: apesar do conceito de Programação Orientada a Objetos ter surgido apenas na segunda metade dos anos 80, a verdade é que as idéias básicas por trás desse conceito já haviam sido descritas por Aristóteles, lá na Grécia antiga, num trabalho chamado KATEGORIEN (Categorias), que faz parte de sua obra principal, conhecida como ORGANON (Organismo ou Método).

O ORGANON de Aristóteles é a tentativa dele de sistematizar as formas de pensamento. É nessa obra que ele descreve, por exemplo, os silogismos, que são as formas básicas de raciocínio, tipo:

PREMISSA MAIOR: Todos os homens têm pêlos no rosto.
PREMISSA MENOR: Ed Lonewolf é um homem.
CONCLUSÃO: Ed Lonewolf tem pêlos no rosto.

Conclusão, aliás, muito correta, já que estou barbudo no momento!

Mas cuidado, porque nem todo silogismo leva a uma conclusão correta como esse. Tomemos um outro exemplo, só para tornar isso claro.

PREMISSA MAIOR: Os homens são seres racionais.
PREMISSA MENOR: As mulheres não são homens.
CONCLUSÃO: As mulheres não são seres racionais.

Essa, é claro, é uma conclusão errada, embora muitos questionem esse ponto...

Deixando porém o debate "machismo versus feminismo" de lado, foi raciocinando dessa forma que Aristóteles chegou às conclusões que nos interessam.

Quando eu digo algo como "Todos os homens têm pelos no rosto", estou pensando em uma categoria de seres (os homens) e caracterizando essa categoria através de um atributo (ter pelos no rosto).

Aristóteles notou que alguns atributos de certas categorias podem ser mudados, sem que com isso a categoria mude, enquanto que outros atributos não podem ser mudados sem que a categoria perca a sua identidade. Para facilitar as coisas, e sair dessa conversa de filósofo um pouco, tomemos um exemplo mais prático.

Imagine uma cadeira e um banco. Apesar de suas óbvias diferença, ambos podem ser enquadrados em uma categoria de objetos que vamos chamar de "objetos de sentar".

Para ser um "objeto de sentar" é preciso, antes de tudo, que o objeto em questão tenha um assento onde possamos repousar nossas nádegas, e um suporte estável composto de uma certa quantidade de pernas. Esses atributos são chamados essenciais. São eles que definem a funcionalidade de uma categoria, ou seja, para que aquela categoria serve.

Assim, se tirarmos o assento de uma cadeira ou de um banco, o objeto deixa de ser um "objeto de sentar", pois perde a funcionalidade básica dessa categoria de objetos. Da mesma forma, se reduzirmos gradativamente o número de pernas de uma cadeira ou banco, veremos que não é nada seguro sentar numa cadeira ou banco com apenas duas pernas. Essa experiência pode ser muito dolorosa para as já citadas nádegas...

Por outro lado, podemos ter muitos tipos de cadeiras. Cadeiras com braços, acolchoadas, giratórias... Mas todos esses tipos tem as duas características básicas de um "objeto de sentar", ou seja, um assento e um suporte (pernas ou rodinhas) que o mantém longe do solo.

Revisando então, só para ter certeza de que a coisa ficou clara até aqui: As propriedades "essenciais", segundo Aristóteles, são as que definem a funcionalidade de uma categoria de objetos.

Há porém propriedades que ele chamou de "acidentais". A cor dos nossos "objetos de sentar", por exemplo, é acidental, ou seja, ela pode mudar sem que os objetos em questão percam sua funcionalidade.

De fato, você pode sentar numa cadeira preta da mesma forma que numa de cor verde. E o fato de pintarmos uma cadeira, mudando sua cor, não impede que façamos uso dela como "objeto de sentar". Só é bom esperar a tinta secar, é claro...

RESUMINDO:

Propriedade essencial é aquela que, se alterada, faz com que a categoria perca sua funcionalidade.

Propriedade acidental é aquela que pode ser alterada sem que a categoria de objetos perca sua funcionalidade.

Agora deixemos Aristóteles em paz e vamos à POO.

Página anterior     Próxima página

Páginas do artigo
   1. O Gênesis
   2. Um pouco de Filosofia
   3. POO
   4. Classe
   5. Implementação
   6. Revisando a implementação
   7. Escopo e Encapsulamento
   8. Instância (Objetos, finalmente!)
   9. Herança
   10. Polimorfismo
   11. Referências e conclusão
Outros artigos deste autor

Programação (I) - Planejamento e Otimização

Livre não precisa ser gratuito

KDE em um PC "primitivo"

Programação (II) - Modularização

O "Linux Tinha Chapéu"

Leitura recomendada

Linux, a pirataria de software e a desvalorização do desenvolvedor (parte 1)

Sony Ericsson k550i no Linux

CentOS como terminal server autenticando em Windows Server 2003 Active Directory com montagem automática de compartilhamentos de rede

Escreva para o VOL - Contribua você também!

YUMI - Criando pendrives multiboot pelo GNU/Linux

  
Comentários
[1] Comentário enviado por gabriel.av em 05/07/2008 - 20:30h

Olha eu achei isso muito importante flw

[2] Comentário enviado por ssdeassis em 05/07/2008 - 21:56h

esperei muito pela terceira parte do artigo continua muito bom como os dois primeiros tenho aprendido muito com a sua série de artigos. Agora vamos ao proximo. Meus parabems.

[3] Comentário enviado por k4mus em 05/07/2008 - 22:37h

Parabens Amigo!!

..vc conseguiu explicar a POO de uma forma agradavel e simples de entender.

Parabens!

[4] Comentário enviado por f_Candido em 06/07/2008 - 14:46h

Muito bom. Parabéns. Bem Simples e Direto.

Abraços


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts