4.3.7 基于类的访问权限

从前面已经知道,方法可以访问所调用对象的私有数据。一个方法可以访问所属类的所有对象的私有数据,这令很多人感到奇怪!例如,下面看一下用来比较两个雇员的equals方法。

典型的调用方式是

这个方法访问harry的私有域,这点并不会让人奇怪,然而,它还访问了boss的私有域。这是合法的,其原因是boss是Employee类对象,而Employee类的方法可以访问Employee类的任何一个对象的私有域。

C++注释:C++也有同样的原则。方法可以访问所属类的私有特性(feature),而不仅限于访问隐式参数的私有特性。