What is Object-Oriented Software?
Intro to OO Programming
Everything about objects

a model of a real-world entity that co-locates public behavior and private state, a model or simulation or abstraction of a concrete entity
a template that defines the attributes and operations for a group of similar entities, the stencil from which objects are created
a unit of composition with contractually specified interfaces and explicit context dependencies only, a decoupled ready-to-use black-box

Well-structured OO systems are resilient, which makes it possible to grow them as the needs of the business change, yet still preserve a stable system that, over time, can evolve to become simpler in form even as the problem domain grows in complexity. [Grady Booch, Object Magazine, Oct 95, p103]

The essential benefit of OO encapsulation is that it allows us to define a state, and a set of behaviors available to act on that state, in such a way that the whole is atomic with respect to the rest of the system, which sees only what it can do and not what it is made of. [Mark Betz, "An object by any other name", Object Magazine, Mar 96, p24]

The true value of object-oriented techniques as opposed to conventional programming techniques is not that they can do things conventional techniques can't, but that they can often extend behavior by adding new code in cases where conventional techniques would require editing existing code instead. [The Treaty of Orlando, PLOPD 3, p464]

OO programming lets us bundle an object's state together with the functions that manipulate it; encapsulation & inheritance let us manage interdependencies and make reuse cleaner and easier. [Herb Sutter, C++ Report, Jan 98, p54]

Object technology isn't a matter of fashion. It's simply that no one really knows how to tackle the kind of sophisticated systems that our users now want, without using object technology. [Bertrand Meyer, IEEE Computer, Jan 98, p140]

Stripped of its fancy jargon, an object is a lexically-scoped subroutine with multiple entry points and persistent state ... If there is one overarching flaw in OOP, it's debugging. It has been discovered that C++ provides a remarkable facility for concealing the trivial details of a program - such as where the bugs are. [Scott Guthery, "Are the Emperor's New Clothes Object-Oriented?", Dr Dobb's Journal, Dec 1989, p80]

Objects are a great way to build software. Unfortunately, building with objects isn't always as easy as it could be. When we try to merge homegrown objects with those from other sources, we often find ourselves fighting a host of incompatibilities. Components address that issue by providing objects with technology and standards that reduce these incompatibilities and ease the integration of objects, regardless of their source. Components will be the most important technology for building software at the start of the next milliennium. [John Williams, Component Strategies, Jun 98, p8]

What makes a piece of software good has a lot to do with application of thought to the problem being addressed, and not much to do with what language or methodology you used. One of the most unfortunate effects of the OOP bandwagon is that it encourages the belief that how you speak is more important than what you say. It is rather like suggesting that if someone uses perfect English grammar they must be truthful. It IS what you say, and NOT how you say it. [Stephen Johnson, "Objecting to Objects, white paper]

Object technology is a magnifier of your current development practices. If your current practices are chaotic, then OT will make them more so. [Tim Korson, Object Magazine, Apr 96, p33]

hide or make private an entity's implementation details
extract the essential behavior of an entity to form an interface
a useful fiction or model or simulation
create new classes by extending existing classes
one interface, many implementations, dynamic binding
employs all four of the preceeding mechanisms
employs only the first two (e.g. Microsoft's OLE/COM)
OO advantages -