Post: Classes Aninhadas

Alessandro Medeiros

Fala Radizeiros e Radizeiras, tudo bem com vocês?

Vamos a mais um post aqui em nosso blog, aqui neste post estarei falando sobre as classes aninhadas.

Você já ouviu falar sobre isso?

Pouca gente sabe desse detalhe dentro do Delphi, e menos gente usa isso dai…rsrs

Isso é pouco usado, mas vale ressaltar, que em algum momento isso pode ser útil.

Mas o que são classes aninhadas?

São classes declaradas dentro da própria classe.

Muita das vezes por alguma situação de encapsulamento isso é legal de usar, porque eu posso ter situações especificas que apenas a classe vai conhecer, eu não preciso ficar declarando nos “uses”, criando uma nova unit.

Quando eu declaro uma classe fora da classe, ela fica visível se alguém declarar isso na “uses” irá ter acesso a essa classe.

Então se eu quero criar uma classe super protegida, super encapsulada, eu posso estar usando as aninhadas.

Vou dar um exemplo simples aqui.

Com um novo projeto criado, irei adicionar uma nova Unit e irei nomeá-la como, Classe.Carro.


type
  TRoda = class
    public
      Tipo : String;
      Tamanho : String;
  end;

  TCarro = class
    private
      Marca : String;
      Modelo : String;
    public
  end;

Observe que em nosso código nós criamos a classe TCarro TRoda, da forma que está criada, se alguém der um “uses” nesta nossa classe Carro ele automaticamente irá enxergar a minha classe Roda  também, então por exemplo, eu posso ter a Roda que será usada para o Carro, e também eu posso usar a mesma classe Roda para Moto, mas se isso não estiver bem especializado pode causar algum problema.

Então seu eu tenho a Roda que é especifica pro carro, eu poso declarar essa Roda dentro da classe Carro.


type
  TCarro = class

    type
      TRoda = class
        public
          Tipo : String;
          Tamanho : String;
      end;

    private
      Marca : String;
      Modelo : String;
    public
  end;

Observe que a unica coisa que fiz foi copiar essa minha classe Roda e acrescentar um type dentro da minha classe Carro.

A partir do momento que eu declarei essa minha classe Roda, tudo que está a baixo dela eu posso usar.


type
  TCarro = class

    type
      TRoda = class
        public
          Tipo : String;
          Tamanho : String;
      end;

      private
        Marca : String;
        Modelo : String;
        Roda : TRoda;
      public
         procedure MontarCarro;
    end;

...

procedure TCarro.MontarCarro;
begin
  Marca := 'BMW';
  Modelo := 'i320';
  Roda.Tipo := 'Liga Leve';
  Roda.Tamanho := '15';
end;

Dessa forma eu encapsulei mais ainda uma classe que é especifica do Carro, eu não tenho essa classe para ser reutilizada por ninguém, então ela está aninhada dentro da minha classe Carro, e somente quem trabalha com a classe Carro que consegue enxergar essa Roda, ninguém mais vai conseguir saber mesmo que a pessoa declarar nas “uses” a unit da classe Carro.

Isso é algo pouco usado, e pouco gente sabe disso, mas é algo muito legal, dependendo do modelo, o tipo do projeto, o tipo de modelagem que você esteja fazendo, isso pode lhe ser muito útil.

Esse post faz parte do treinamento Técnicas avançadas de Delphi.

Nesse treinamento eu reuni as minhas melhores aulas dos meus mais diversos treinamento para entregar  para você um conteúdo que vai direto ao ponto, para que você não perca tempo e nem dinheiro na hora de aprender Delphi.

CLIQUE AQUI PARA SABER MAIS SOBRE O TREINAMENTO DE TÉCNICAS AVANÇADAS DE DELPHI.

 





Faça sua busca

CATEGORIAS

POSTS RECENTES

E caso você tem interesse de conhecer mais sobre Classes Aninhadas, acesse o nosso portal do CLUBE DE PROGRAMADORES EM DELPHI
Você não terá só conteúdos relacionados ao Classes Aninhadas, mas uma quantidade enorme de conteúdos que poderá lhe ajudar muito no seu dia a dia, é uma verdadeira NETFLIX para os programadores Delphi.
Gostou?
Compartilhe:

Embarque no foguete com milhares de devs para aprender desenvolvimento, evoluir de forma contínua e se manter relevante no mercado.

Dúvidas
Cadastre-se em nossa lista

Para ter acesso em primeira mão, a tudo que acontece na Academia do Código, basta se cadastrar em nossa lista

Grupo Thulio Bittencourt | Academia do Código

#FaçaPartedaHistória

Copyright © 2024 – Todos os direitos reservados