The clean way to remember it: one is a rule for the author, the other is a property of the object. Everything else follows.
The failure I see most is a keyword private on a token or credential, then the object gets logged or serialised somewhere and it comes straight out. It was never hidden; it was only inconvenient to reach on purpose.