Interning principle
lTo intern objects in a class, we need a way to get to all objects in that class that were ever created.
lThe client does not use the constructor, but rather uses a factory method that returns objects.
lThe factory method checks to see whether the prescribed object has already been created
lIf so, it returns the existing objectÕs reference.
lIf not, it creates a new object (using the constructor) and returns the reference to that object.