Olá pessoal,
Como todos sabemos, o xHarbour é um poderoso tradutor que transforma código xBase em código C, e sendo C uma linguagem hibrida, podemos tanto escrever programas estruturados e procedurais, como orientados a objetos.
Mas então afinal, o que é esta tal de Programação Orientada a Objetos?
Bom, acho que eu não sou nenhum especialista e nem a pessoa mais indicada para explicar este conceito tão amplo, mas vou tentar aqui demonstrar na prática como aplica-lo com xHarbour.
Um dos erros mais comuns que tenho visto é as pessoas acharem que tudo que é for Windows é OOP, e não é verdade. Muitas pessoas partem do princÃpio de quem um botão ou um textbox é um objeto, e que é nisso que se fundamenta o conceito. Totalmente errado. Como veremos aqui, neste tipo de programação as entidades do nosso sistema (como Clientes, Fornecedores etc) que são verdadeiramente os nosso objetos.
Note que sistemas Visual Basic, Delphi e até C++ NÃO SÃO em sua imensa maioria orientados a objetos. A orientação a objetos é parte do planejamento de software que o desenvolvedor deve fazer, e não a linguagem ou ferramenta utilizada! Só pra constar, linguagens mais modernas como JAVA sempre são OOP.
Em todas estas linguagens a criação de objeto depende de CLASSES, e classes costumam vir acompanhadas de propriedades e métodos.
O objeto em sÃ, em termos práticos, acaba por ser aquela variavel que recebe para si toda uma classe. (Não é extamante isso mas assim é facil entender... E poderá ser visto no código)
Então, como dito, nosso objeto pode ser um cliente, pois clientes tem caracteristicas em comum entre si, e formam uma classe, assim como animais e vegetais (poético não?) são diferentes entre si, mas agrupados possuem caracteristicas muito semelhantes.
Vamos ver uma classe de clientes, com seus métodos e propriedades:
Propriedades comuns a clientes:
- Codigo;
- Nome;
- Telefone;
- Cor do cabelo;
- etc
Metodos comuns a clientes:
- Consultar
- Incluir
- Alterar
- Morrer - Isso mais tecnicamente falando seria chamado de exclusão... hehe
- etc
Bom pessoal, na internet existe muito material a este respeito, minha intenção era mesmo só de mostra isso do jeito que a gente gosta, no código!
Vou continuar na próxima postagem com os fontes.