The bundling of data and procedures into a container (or capsule) for relevant properties (contained in variables) and methods (used for manipulating variables).
The design principle of writing modular code segments that can be used by other programmers knowing only the details of how to interface with the module. In other words the programmer would not need to know anything about the inner workings of the module to use it. This type of information would be hidden from him or her.
software example: System.out.println
real world examples: TV, cell phone, air conditioner, car, etc.-- the user does not need to understand what goes on inside the device to use it.