所以前几天我在做一个类并使用 Eclipse 的方法创建 equals 方法时,我意识到它生成了以下工作代码:
class Test {
private int privateInt;
[...]
public boolean equals(Object obj) {
[...]
Test t = (Test) obj;
if ( t.privateInt == privateInt ) {
[...]
}
}
t.privateInt..???? 应该是私人的!所以我想除了私有、受保护、包保护和公共之外,还有一个字段可见性。
那么这里发生了什么?这个怎么称呼?有人会在哪里使用这个?这不会破坏封装吗?如果该类没有 mutator 而我更改了它怎么办?C++ 也会发生这种情况吗?这是一个面向对象的习语吗?如果不是,那为什么 Java 这样做呢?
一般来说,我在哪里可以找到这方面的信息?
谢谢你。