B is completely accurate.
A is not true; reference is a primitive type, not an object.
C is not true; nothing in Java can contain an object in the sense of other languages like C++.
D would be true if it were rephrased "An object may contain references to other objects."
Only b. could be part of a private implementation.
Everything else is declared public.