Object Oriented Programming: Abstraction Vs. Encapsulation