As long as the access expression to the private member (otherPrivate.i) occurs whithin the class (Private) declaring the private member (i), the access is allowed.
Its is possible for the objects of the same class to access each others private methods because private member's is private to the class but not private to an object instance.
Correction to the above post ... Its is possible for the objects of the same class to access each others private methods/variables because private member is private to the class but not private to an object instance.