This book describes the object-oriented (OO) paradigm, a development strategy based on the concept that systems should be built from a collection of reusable components called objects. Instead of separating data and functionality, as is done in the structured paradigm, objects encompass both. While the object-oriented paradigm sounds similar to the structured paradigm, as you will see in this book, it is actually quite different. A common mistake that many experienced developers make is to assume they have been “doing objects” all along, just because they have been applying similar software-engineering principles. The reality is you must recognize that objects are different so you can start your learning experience successfully