それで、先日クラスを作成していて、Eclipse のメソッドを使用して equals メソッドを作成したときに、次の作業コードが生成されたことに気付きました。
class Test {
private int privateInt;
[...]
public boolean equals(Object obj) {
[...]
Test t = (Test) obj;
if ( t.privateInt == privateInt ) {
[...]
}
}
t.privateInt..???? 一応プライベートです!したがって、private、protected、package protected、および public 以外に、もう 1 つのフィールドの可視性があると思います。
では、ここで何が起こっているのでしょうか? これはどのように呼ばれますか?誰かがこれをどこで使用しますか?これはカプセル化を壊しませんか?クラスにミューテーターがなく、これを変更した場合はどうなりますか? これは C++ でも起こりますか? これはOOイディオムですか?そうでない場合、なぜJavaはそれをしたのですか?
一般的に、これに関する情報はどこで入手できますか?
ありがとうございました。