Sometimes private is not enough. You would like to prevent directly setting a member variable even from within the same class. This can be done with AspectJ.
One of the features requested in the Mustang forum was a modifier that would allow a member variable to be inherited as if it were protected, but not to be accessed by the other classes from the package. Here is how to achieve the same with AspectJ.
Aspect Oriented Development is all about the DRY principle: Don't repeat yourself! Or, as it is usually put, it's about "separating crosscutting concerns".