这取决于。您首先必须考虑可见性分离的原因。 private
方法旨在用于一个类中,而public
方法旨在用于类之外。
在你特别的例子中,你没有引用一个类。相反,我会用你的例子来说明以下几点:
type
TMyObject = class(TObject)
private
FNumber: Integer;
function GetNumber: Integer;
procedure SetNumber(Input: Integer)
public
property Number: Integer read GetNumber write SetNumber;
end;
function TMyObject.GetNumber: Integer;
begin
Result := FNumber;
end;
procedure TMyObject.SetNumber(Input: Integer);
begin
FNumber := Input;
end;
正如你所看到的,我已经添加了一个名为Number
属性,它使用GetNumber
获得的价值和SetNumber
分配它。这种方法的使用几乎总是伴随着以这种方式使用财产。
回到原来的问题,正如我所说的,这取决于。例如,您的属性设置器可能会执行一些额外的代码,而不仅仅是分配值。在这种情况下,您可能需要通过其私人FNumber
字段来设置此值,以便不调用其他设置程序代码。
因此总之,答案是否定的。它不是绝对是必需通过访问私人成员类中的获取和设置器。但是,来自外部类,那么是的,这将是必要的。
在另一方面,你可以也声明会员strict private
下,这将迫使类成员只从类本身中可见,而不是从在同一单位其他地方。
Read more here关于班级成员的知名度。
这在文档中有解释。你不明白的是哪部分? –
也许您还没有阅读关于[课堂成员可见度]的文档(http://docwiki.embarcadero.com/RADStudio/XE7/en/Classes_and_Objects#Visibility_of_Class_Members) –
您的代码没有显示您所询问的任何内容。你在谈论(大概是)类方法和它们的可见性,但是你的代码根本与类没有关系。另外,它甚至不是有效的语法。 –