Pét*_*son 17 java dsl semantics
Java中的类实例可以访问其自己类型的不同实例的私有字段,例如在以下列表中:
public class Foo {
private int secret;
public void bar(final Foo foo) {
foo.secret = 100;
}
}
Run Code Online (Sandbox Code Playgroud)
这种语义(设计语言时)的论据是什么?
ysh*_*vit 15
那么,首先你要问"为什么要有私人田地?"
私有字段主要用于封装:一个类的用户不应该知道该类的实现的内部.实际上,他们不应该知道,因为如果他们依赖于那些细节,那么实施者将被迫支持他们或打破向后兼容性.换句话说,它保护了类的用户和设计者:
但是一个班级不需要保护自己; 它不需要担心其代码的一位改变的情况,但另一位(使用第一位)不能改变.向后兼容性不是问题,因为该类是作为单个原子代码块开发的.换句话说,上述保护都不是必需的.
由于不需要保护字段,因为通常需要查看它们(例如,比较两个对象是否相等),它们在类中是可见的.