One of the first wtf moments most people have when learning about encapsulation and Object-Orientation is when they realize that keywords such as private or protected don’t really prevent people from calling those methods or attributes. From Java’s basic but practical Reflection framework to Ruby’s powerful metaprogramming features, you can always find a w...