Post: Classe Amigas

Alessandro Medeiros

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

Vamos a mais um post, hoje eu vou mostrar mostrar as Classes Amigas, será que são tão amigas assim?rsrsrsrs

Você já conhece os private, property, e como elas nos auxiliam no encapsulamento dos nosso atributos.

Mas o private tem uma particularidade, que são as Classes Amigas.

O Objeto, é privado para uma classe apenas quando ela está em uma única Unit, por isso uma boa prática de programação é para cada classe criar uma Unit.

Para ser considerada Classes Amigas, as classes precisam estar na mesma Unit e irão compartilhar os seus atributos privados.

No código abaixo temos nossa classe TCliente e seus métodos e atributos privados.


type
  TCliente = class
  private
    FDataNascimento: TDateTime;
    FNome: String;
    FEndereco: String;
    FTelefone: String;
    procedure SetDataNascimento(const Value: TDateTime);
    function GetEndereco : String;
    procedure SetEndereco(const Value: String);
    procedure SetNome(const Value: String);
    procedure SetTelefone(const Value: String);
  public
    constructor Create;
    procedure CadastrarClientes;
    procedure CriarFinanceiro;
    function Idade : Integer;
    property Nome : String read FNome write SetNome;
    property DataNascimento : TDateTime read FDataNascimento write SetDataNascimento;
    property Telefone : String read FTelefone write SetTelefone;
    property Endereco : String read GetEndereco write SetEndereco;
end;

Nessa mesma Unit irei criar uma classe.


type
  TClasseAmiga = class
  private
    Teste : String;
  end;

Você pode observar que temos um objeto privado chamado Teste, teoricamente não é para ninguém ter acesso a ele, mas ela é uma classe amiga da classe TCliente, porque elas convivem no mesmo ecossistema, na mesma Unit.

Em qualquer método de nossa classe TCliente, você poderá observar que temos acesso ao objeto privado da classe TClasseAmiga.

Mas você pode estar se perguntando, mas esse objeto não está como privado na classe TClasseAmiga?

Sim ela está, mas como elas estão na mesma Unit, elas estão compartilhando esses métodos privados.

A mesma coisa com métodos da classe TClasseAmiga.


type
  TClasseAmiga = class
  private
    Teste : String;
  public
    procedure TesteDeSoftware;
  end;

Observe que também temos acesso ao métodos e atributos privados da classe TCliente.

Tenha muito cuidado quando for criar mais de uma classe dentro da mesma Unit, pois você pode estar violando o encapsulamento, por isso é uma boa prática você criar cada classe em uma Unit separada.

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 Classe Amigas, acesse o nosso portal do CLUBE DE PROGRAMADORES EM DELPHI
Você não terá só conteúdos relacionados ao Classe Amigas, 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