Conceitos de base da Programação Orientada a Objectos

Imprimir


  1. Conceitos básicos da Programação Orientada Objecto

O Objecto:

 

O objecto pode ser definido como uma estrutura de dados, semelhante às estruturas de dados da Programação Estruturada. Exemplos de estrutura de dados que conhecemos:

    • Uma Árvore

    • Uma Pilha (LIFO)

    • Uma Fila (FIFO)

 

Na programação estruturada uma estrutura de dados Pilha serve para armazenar dados cujo acesso é efectuado através de tratamentos predefinidos separados dessa mesma estrutura de dados: Empilhar e Desempilhar.

 compilation

No entanto, o objecto introduz uma novidade no sentido de conjugar os dados junto com os tratamentos, ou seja no caso de uma Pilha, os tratamentos Empilhar e Desempilhar fazem parte do OBJECTO.

 

Para tal, o objecto serve-se de duas ferramentas essenciais: os atributos e os métodos.

 

      1. Os atributos: são os campos que permitem armazenar os dados de forma organizada. São definidos pelos tipos: inteiro, alfanumérico, matriz, etc. e podem ser preenchidos na definição.

 

      1. Os métodos: analogicamente à programação estruturada, são os procedimentos ou funções que costumamos usar para tratar os dados armazenados ou a armazenar. Os Métodos são os tratamentos que permitem ao objecto gerir os dados, servindo de interface entre esses mesmos dados e os programas

 

Os atributos e os métodos de um objecto são chamados membros.

 

    1. Classe

 

Para muitos programadores e algumas linguagens de programação, a classe não se distingue do objecto. Na linguagem Dephi por exemplo, fala-se de classe de objecto.

 

Na teoria da POO, a classe é um tipo que permite instanciar o objecto, ou seja, dotá-lo de um endereço na memória, preenchendo/inicializando os seus atributos.

 

    1. Herança

 

Quando um objecto adquire todas as características de um outro objecto pelo facto de ele fazer parte da mesma família que esse objecto, diz-se na POO que é uma herança. Exemplo de herança:

 

Ex1: Objecto 1: Telefone:

 

Podemos associar vários atributos ao objecto Telefone:

  • Cor

  • Marca

  • Com ou sem fio

 

E para poder preencher esses atributos, podemos utilizar os métodos seguintes:

 

  • Ligar o telefone

  • Atender o telefone

  • Desligar o telefone

 

Graças ao conceito de herança esse objecto pode ter um ou vários descendentes. À semelhança do que se passa com os humanos que herdam as características dos pais e acabam por desenvolver características próprias, os herdeiros desse objecto podem agir da mesma forma.

 

  • O objecto Telemóvel herde o objecto Telefone, não precisará de definir os membros já definidos pelo Pai, já os tem à nascença; pode, no entanto definir novos membros:

 

Os atributos:

 

  • Tempo de carregamento

  • Tem ou rádio ou não

  • Tem máquina de foto

  • etc.

 

Os métodos:

 

  • Carregar

  • Ligar o rádio

  • Desligar o rádio

  • Tirar uma foto

  • etc.

 object 

    1. Encapsulamento

 

O encapsulamento permite esconder alguns atributos e métodos do objecto. O acesso a esses atributos e métodos só se podem fazer através de outros métodos definidos para tal.

 

    1. Polimorfismo

 

Esse conceito permite a um objecto modular o seu comportamento de acordo com o contexto. De acordo com a sua estrutura semântica, o objecto pode ter várias formas.

 

É um conceito que tem por origem a herança. Um objecto tem sempre a possibilidade de redefinir métodos no intuito de o adaptar a situações singulares a ele mesmo.

 

Retomemos o nosso exemplo de herança entre o Telefone e Telemóvel. O objecto Telemovel herda o método Atender o telefone. No entanto um Telemovel pode oferecer a possibilidade de atender com as mãos livres, para tal deverá redefinir o método Atender o telefone para o adaptar às suas necessidades. É o polimorfismo!

 

 

    1. Construtor

 

Um construtor serve à alocação da memória para o objecto. Permite dar valores iniciais aos atributos e associar esses últimos aos métodos.

 

Varias instâncias de um mesmo tipo de objecto podem estar na memória, bem como os atributos, mas apenas uma cópia dos métodos estará alocada na memória, isso permite poupar recursos de memória.

 

Convém realçar que todos os objectos possuem um construtor implícito e que não é obrigatório programar construtores explícitos.

 

Os construtores implícitos inicializam os atributos e alocam memória para os métodos, dados e esses mesmos atributos.

 

Os construtores explícitos permitem ao utilizador inicializar os atributos com dados próprios. Pode-se elaborar vários construtores para um mesmo tipo de objecto e dar assim ao utilizador a possibilidade de escolher o construtor que lhe convier.

 

    1. Destrutor

 

O destrutor permite libertar a memoria, ou seja destruir os objectos ali alocados.

 

À semelhança do construtor, a presença de um destrutor não é obrigatória; o sistema, neste caso, encarregue-se de destruir o objecto da memória.

 

Pode um tipo de objecto possuir vários destrutores. Na maioria dos casos, quando se declara vários tipos de construtores, prevê-se os seus destrutores.

 

 



Criada por: jhofnung. última modificação em: Sexta-feira 23 de Janeiro, 2009 11:39:29 GMT-2 por jhofnung.