At the heart of all object-oriented systems is the concept of an object. Simply stated, an object is a set of related characteristics and their associated actions. For example, a customer object consists of customer attributes (account number, name, balance, etc.) along with actions that work upon the customer data (add customer, delete customer, edit customer, etc.). In an object-oriented system, the data and the actions are encapsulated, which means that you define an object to contain both the data and its concomitant actions. All of this makes the code cleaner and more maintainable -- huge issues when it comes to software development.