Reflection is simply the ability of an object to tell you about itself, its methods, instance variable, type, etc. To use a metaphor, she was named by name, for example, looking in a mirror and seeing herself. That way you can describe yourself as someone else. Similarly, reflection is the ability of an object (or even program) to describe itself.