Na aula anterior criamos nossas primeiras classes com herança no Delphi. Mas até agora elas só existiam no código, sem fazer nada de verdade. Nesta aula chegou a hora de colocar os objetos pra funcionar — e também de organizar o projeto do jeito certo, separando cada classe em seu próprio arquivo.

Instanciando o primeiro objeto

Pense numa classe como uma forma de bolo: ela define o formato, mas não é o bolo em si. O objeto é o bolo que sai dessa forma — algo concreto, que existe na memória do programa e pode ser usado.

Para criar um objeto no Delphi, o processo é direto: você declara uma variável do tipo da sua classe e chama o método Create para instanciá-la:

var
  Pessoa: TPessoa;
begin
  Pessoa := TPessoa.Create;
  Pessoa.Nome := 'Landerson';
  WriteLn('Nome: ' + Pessoa.Nome);
end;

O Create é herdado da classe base TObject — o ponto de partida de toda classe no Delphi. Isso significa que qualquer classe que você criar já vem com esse método pronto pra uso, sem precisar declarar nada extra.

Na aula montamos uma aplicação Console simples: o programa pede o nome ao usuário, salva no atributo Nome do objeto e depois exibe o valor lido. Simples assim — e já funciona, mesmo que a classe ainda não tenha toda a estrutura adequada de visibilidade e encapsulamento (isso vem nas próximas aulas).

Refatorando: uma Unit por classe

Na aula anterior, todas as classes foram colocadas na mesma Unit só para fins didáticos. Mas isso não é uma boa prática. Imagine um projeto com dezenas de classes todas no mesmo arquivo: seria um caos para manter.

A boa prática no Delphi é ter uma Unit por classe. O processo é simples:

  1. Crie uma nova Unit para cada classe (ex: Curso.Classes.TPessoa.pas)
  2. Copie o código da classe para a nova Unit
  3. Na Unit da classe filha, declare o nome da Unit da classe pai na seção uses (dentro de interface)

Esse terceiro passo é o que trava muita gente. Quando você separa as classes, o compilador não sabe mais onde está TPessoa, por exemplo. A solução é simples — adicionar a Unit na cláusula uses:

interface

uses
  Curso.Classes.TPessoa;

type
  TCliente = class(TPessoa)
    // ...
  end;

O resultado final é um projeto limpo, com cada classe no seu próprio arquivo, fácil de navegar e de manter. O programa continua funcionando exatamente igual — a refatoração não muda o comportamento, só organiza o código.

Assista à aula completa

Para acompanhar a série desde o início, veja também o post anterior: Criando classes e herança no Delphi, passo a passo.

Deixe um comentário