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.
Intro OOP, Chapter 23, Slide 03