Object Oriented programming consists of breaking large
functions up into smaller Objects. All the Objects are
related together using your languages' goto keyword.
By re-arranging (or orienting) your code in this way, you can
convert what used to be a large (monolithic) function into the
more favoured structured monolithic form containing several
objects and the gotos (sometimes called mortar) to join them
together.
Now I've done your homework, I'll get back to chiselling my blocks.
OOD revolves around Encapsulation, Polymorphism and Inheritance
* Encapsulation in OOAD terms means hiding all the details of an object that do not contribute to its essential characteristics. Encapsulation hides the implementation details of the object and the only thing that remains externally visible is the interface of the object.
A good program should encapsulate or hide a single design decision. - Peter Coad and Edward Yourdon
It helps in exposing only the essential behavior to the outside world. The data will be secure under one object.
* Inheritance provides a natural classification for kinds of objects and allows for the commonality of objects to be explicitly taken advantage of in modeling and constructing object systems.
This reduces the complexity of structuring while designing the system. Through the use of inheritance, programmers can reuse the code in the super class many times.
* polymorphism means that some code or operations or objects behave differently in different contexts.
The most powerful concept. That contributes reusability in a greater extent. It simplifies the programming by facilitating proper abstraction
- Karthicraja
At the end of the day, you first and foremost have a way of *thinking* about your application design. The nature of OOP objects correspond to objects in the real world and allow you to implement reusable and extendable behaviors and attributes of those objects. OOP also tends to result in more readable code and design intent (when documented!) as well as all the previous posters' comments on code reusablilty, etc.