nao e necessario a implementacao de metodos gets, pois a propria property pode fazer acesso diretamente a variavel encapsulada, isso tambem pode acontecer com o metodo set, mas por boa pratica faca isso somente no metodo get se necessario.A implementacao com a property acessando diretamente a variavel encapsulada ficaria assim:type TPessoa = class(TObject) private FNome: string; FDataNascimento: TDate; FSexo: Char; procedure setNome(const AValue: string); procedure setNascimento(const AValue: TDate); procedure setSexo(const AValue: Char); protected public property Nome: string read FNome write setNome; property DataNascimento: TDate read FDataNascimento write setNascimento; property Sexo: Char read FSexo write setSexo; published end; Esse modo dispensa a implementacao dos metodos gets, mas sinceramente isso nao e problema, porque se voce declara a instrucao da property inteira por exemplo: property Nome: string read getNome write setNome;E depois pressiona ctrl + shift + c, o proprio Delphi se encarrega de implementar os metodos get e set e declarar uma variavel na secao private correspondente ao nome e tipo da property declarada (Que maravilha nao?). Em resumo property e um otimo recurso que infelizmente nem todas as linguagens (Java por ex.) implementam.Constructor e DestructorAssim como outras linguagens o Delphi implementa os metodos construdores e destrutores de classes, esses metodos diferente de outras linguagens podem ter qualquer nome contanto que sejam declarados com a diretiva constructor ou destructor antes do metodo, por boa pratica nao e recomendavel fugir do padrao de nomes Create e Destroy, a nao ser que isso seja necessario devido a uma diretiva overload (Falaremos posteriormente) onde os tipos dos parametros sao iguais mas a funcionalidade do metodo e diferente. Apesar da nossa classe nao implementar nenhum metodo construtor ou destrutor ela ja vem com estes dois herdados da classe TObject, e como TObject e a classe raiz do Delphi qualquer classe implementada tera os mesmos dois metodos herdados, por padrao os metodos construtores de destrutores da TObject tem a unica finalidade de alocar e desalocar o objeto da memoria.Vamos a implementacao de um metodo constructor e um destructor em nossa classe.type TPessoa = class(TObject) private FNome: string; FDataNascimento: TDate; FSexo: Char; procedure setNome(const AValue: string); procedure setNascimento(const AValue: TDate); procedure setSexo(const AValue: Char); function getNome: string; function getNascimento: TDate; function getSexo: Char; protected public constructor Create; destructor Destroy; override; property Nome: string read getNome write setNome; property DataNascimento: TDate read getNascimento write setNascimento; property Sexo: Char read getSexo write setSexo; published end;Obs: A diretiva override e necessaria em casos de sobre-escrita do metodo herdado da classe pai, isso acontece pois nossa classe pai, no caso a TObject possui o metodo Destroy com a diretiva virtual, que implica que este metodo deve ser implementado (Sobre-escrito) pelas classes que o herdarem, se voce nao o fizer o Delphi nao acusara erro, mas emitira um warning "Method 'Destroy' hides virtual method of base type 'TObject'", na realidade isso ocorre pois ao nao declarar override no metodo voce esta "escondendo" o metodo originario da classe TObject, o correto e utilizar override e chamar o metodo pai de desalocamento de memoria com o comando inherited, que nada mais faz do que chamar um