Java中的类的实例可以访问其自身类型的其他实例的私有字段,例如以下清单:
public class Foo {
private int secret;
public void bar(final Foo foo) {
foo.secret = 100;
}
}
在设计语言时,这种语义的论点是什么?
好吧,首先,您必须问“为什么根本没有私有领域?”
专用字段主要用于封装:类的用户不必知道该类的实现的内部。实际上,他们不应该知道,因为如果他们依赖这些细节,那么实施者将被迫支持它们或破坏向后兼容性。换句话说,它保护了该类的用户和设计者:
但是,不需要保护一个类本身。它不需要担心代码的某一位发生变化,而另一位(使用第一位)不变的情况。向后兼容性不是问题,因为该类是作为单个原子代码块开发的。换句话说,以上保护都不是必需的。
由于不需要保护字段,并且由于经常需要查看它们(例如,比较两个对象是否相等),因此它们在类中是可见的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句