我刚刚注意到一些我以前从未意识到的事情。事实证明,这个类在 C# 中是有效的:
class Foo
{
private string contents;
public Foo(string str) {
contents = str;
}
public void set(Foo other)
{
contents = other.contents;
}
}
因此同一类的不同实例可以访问彼此的私有成员。
到目前为止,我认为对象的私有成员只能由该对象访问,而不能由同一类的其他实例访问。发现这一点有点令人惊讶。
在所有常见的面向对象语言中都是这种情况吗?这对我来说并不直观。