object that encapsulates and delegates to another
object to alter its interface or behavior in
Java won't let you change a caller's variable.
However it will let you change the fields inside
a caller's object passed to you as a parameter.
To get around the limitation that you can't
change the caller's variables, (or return multiple
values), you create a dummy class. You can then
have the caller pass you an object of that dummy
class and you fiddle its fields. Alternatively
you create such an object, fill in its fields
and return it to the caller. That dummy class
is called a wrapper.