Protection Test

Question: If one has a handle to an instance, do they really have the instance? Specifically, given a Class A which has an instance variable of type Class B, can Class A access the private components of Class B since Class A has possession of the thing called Class B (specifically, Class A has Class B's identity (handle))

The following is a test for how protections work. First, a class that has protected variables:

Now a class to test it. Notice the main() method: CheckProtect compiles fine. When compiling TestProtect we get So, let's change some things. Remove and change the printTest() to: Then, put a printTest() in CheckProtect as well: Recompiling (works fine) and running produces:
Lesson: having a handle to an instance and calling methods with it is not the same as calling methods from "within the class". Private methods and instance variables can only be reached via Public methods of that same class.

Then, next question: Can any class ever have all private components?