Unfortunately, for a multitude of reasons, many software professionals have yet to adopt, let alone explore, the expressive power of object technologies. In this article, I'll introduce you to the basic concepts of modeling a problem domain using object technology. However, although many different kinds of object modeling tools exist, the most powerful tool you can possess is a fresh way of looking at the world around you. We're surrounded by objects. All the objects we interact with daily have names, attributes and specific ways in which they perform their function.
Many objects use, or are collections of, other objects.
The nice thing about automobiles is that once you learn how to drive one you can pretty much drive them all. Because regardless of who makes them, you control one like you control another. Sure, one may have leather appointments, fancy gadgets or four wheel drive, but they all have some way to turn them on and turn them off, put them in gear, change their direction of travel and open and shut the doors. In other words, they share a common interface. If you wanted to simulate an automobile in a procedural programming language, you'd be faced with quite a challenge.