//這個類中的兩個字段沒有封裝
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;
{封裝的目的就是隱藏實現細節、保證數據安全}