Programação Orientada a Objeto - Parte II

Um exemplo prático em Delphi



Exemplo de POO na Linguagem Delphi

  

Crie um novo projeto, renome o Form para FPrincipal, salve a Unit com o nome de UPrincipal e o projeto com o nome de AplicacaoPOO.  Selecione o menu File > New > Unit – Delphi for Win32 para cria uma nova Unit sem um formulário anexo e salve essa com o nome de UClasses.

 

Na seção interface entre com o código abaixo;

 

01

type

02

  TPessoa = class

03

    Nome: string;

04

    Fone: string;

05

    procedure Avaliar;

06

    constructor Create;

07

    destructor Destroy;

08

  end;

 

Nesse código estamos usando o conceito de Abstração para criarmos uma nova classe.  Como toda classe é um tipo começamos digitando a palavra reservada type. 

 

Na linha 02 iniciamos a criação da nossa classe que é finalizado com a palavra reservada end; que se encontra na linha 08. 

 

Nas linhas 03 e 04 declaramos dois campos (atributos) do tipo string. 

 

Na linha 05 foi declarado o método Avaliação e nas linhas 06 e 07 são declarados dois outros métodos extremamente importantes.  O método constructor cria a instância do objeto, fazendo as alocações em memória e disponibilizando o objeto para uso, dessa maneira sempre que precisarmos instanciar um objeto devemos chamar esse método.  Já o método destructor faz o inverso do constructor, ele destrói o objeto instanciado liberando a memória.

 

Observação

Os métodos constructor e destructor são opcionais, eles foram colocados aqui por motivos didáticos, mas eles são implementados por default, uma vez que um objeto para ser instanciado e destruído necessita desses dois métodos.

 

Com o prompot dentro da declaração da classe pressione Ctrl+Shift+C e entre com o seguinte código:

 

01

implementation

02

 

03

uses Dialogs;

04

 

05

{ TPessoa }

06

 

07

procedure TPessoa.Avaliar;

08

begin

09

  ShowMessage('Avaliação sendo executada');

10

end;

11

 

12

constructor TPessoa.Create;

13

begin

14

  Self.Nome := 'Novo Nome';

15

  Self.Fone := 'Novo Fone';

16

end;

17

 

18

destructor TPessoa.Destroy;

19

begin

20

  Self.Nome := '';

21

  Self.Fone := '';

22

end;

23

 

24

end.

 

Esse código é bem simples e praticamente dispensa explicações, o único detalhe novo que temos aqui é a palavra reservada Self, poderíamos ter atribuído valores aos campos Nome e Fone sem utilizá-la, mas para evitar ambigüidade utilizamos o Self para fazer uma referência implícita à própria classe.

 

Volte para o FPrincipal, declare UClasses na cláusula uses da seção implementation, coloque um componente TButton e em seu evento OnClick entre com o código abaixo, compile e teste:

 

01

procedure TFPrincipal.Button1Click(Sender: TObject);

02

var

03

  Aluno: TPessoa;

04

begin

05

  Aluno := TPessoa.Create;

06

  ShowMessage( Aluno.Nome +#13+ Aluno.Fone );

07

  Aluno.Nome := 'Tadeu';

08

  Aluno.Fone := '1111-1111';

09

  Aluno.Avaliar;

10

  ShowMessage( Aluno.Nome +#13+ Aluno.Fone );

11

  Aluno.Destroy;

12

end;

 

Na linha 03 estamos declarando o objeto Aluno do tipo TPessoa.  A linha 05 estamos instanciando o objeto Aluno.  A linha 06 nos mostra o valor dos campos após o objeto ter sido instanciado.  Nas linhas 07 e 08 estamos atribuindo novos valores nos campos do objeto.  A linha 09 executa o método Avaliação, enquanto na linha 10 é mostrado os novos valores atribuídos aos campos.

 

Este artigo foi cedido por http://www.cassic.com.br/