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.762 ]

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


Herança



Aqui está uma das maiores forças da POO: a capacidade de transmitir lógica de uma classe para outras através a herança.

Com isso fazemos com que nosso código seja melhor aproveitado, mais sintético e menos sujeito a erros. E quando os erros ocorrem, sabemos melhor onde encontrá-los.

Mas como estender uma classe? Simples! Vamos criar uma classe Cadeira, derivada da nossa classe Sentável.

#ifndef __CADEIRA_H__
#define __CADEIRA_H__

#include "sentavel.h"

class Cadeira : Sentavel {

      public:

   Cadeira( int, int, bool );
   ~Cadeira();

   bool tem_rodinhas();

      private:

        bool rodinhas;

   void set_rodinhas( bool );
   bool get_rodinhas();

};


#endif

Observe que não nos preocupamos em definir as funções que especificam o número de pernas e assentos da cadeira. Como ela descende de Sentavel, herdará essas funções!

Fantástico, não é? Codificamos apenas em Sentável e podemos espalhar aquelas funções em diversos lugares, definindo diversos objetos dentro do nosso sistema.

Da mesma forma que temos Cadeira descendendo de Sentável, poderíamos ter Sofá, Divã e até Puff! E não precisaríamos implementar tudo novamente, reinventando a roda a cada dia.

Isso fica ainda mais poderoso se levarmos em conta que nos domínios dos problemas práticos, lidamos com categorias de objetos que tem muitas formas e funcionalidades em comum. Por exemplo, um Cliente e um Fornecedor em um sistema são entidades diferentes, mas se pensarmos neles como pessoas, poderemos ter:

class Pessoas {

}

class Clientes : Pessoas {

}

class Fornecedor : Pessoas {

}

Colocando em Pessoas todas as coisas comuns, como por exemplo um endereço, evitaríamos a codificação dobrada nas duas classes herdeiras.

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

Software Livre... e um passo além

Instalando o Dynebolic sem instalador

Software Livre e o Código de Defesa do Consumidor

Instalando Slackware "na marra"

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

Leitura recomendada

Apresentando o Molotov

Criando vídeo com características de DVD

Asterisk e Asterisk GUI - Instalação e Configuração no Debian Squeeze

Instalando servidor TACACS para centralizar usuários e senhas de ativos Cisco

Procedimentos para flash do DIR-300 com DD-WRT e OpenWRT - versão 2

  
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