//这个类中的两个字段没有封装
TMyClass1 = class
FName: string;
FAge: Integer;
end;
//这个类中的两个字段封装了, 外部不能读写
TMyClass2 = class
private
FName: string;
FAge: Integer;
//public
end;
//那怎么读写? 用属性啊
TMyClass3 = class
private
FName: String;
FAge: Integer;
procedure SetAge(const Value: Integer);
procedure SetName(const Value: String);
published
property Name: String read FName write SetName;
property Age: Integer read FAge write SetAge;
end;
{
现在 TMyClass3 中的两个字段: FName、FAge 和两个方法: SetAge、SetName
都被封装在私有区(private)内, 不允许外部读写, 只能是内部使用.
不过, private 的封装在本单元内是无效的!
现在好了, 有了 strict 标识符.
}
//这个封装好了, 在 private 前加了 strict ; 现在除了自己谁也访问不了私有 区.
TMyClass4 = class
strict private
FName: String;
FAge: Integer;
procedure SetAge(const Value: Integer);
procedure SetName(const Value: String);
published
property Name: String read FName write SetName;
property Age: Integer read FAge write SetAge;
end;
{封装的目的就是隐藏实现细节、保证数据安全}