Introduction to OOP: Chapter 17 : Visibility and Dependency
Visibility is an attribute of names.
Names of variables, functions, fields, whatever.
If you can't name something, you can't manipulate it.
Languages already have a variety of mechanisms for the control of name
OOP languages introduce a few new twists.