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/ |