•Programs are populated by objects, which communicate with each
other
•By delegating specific and narrow responsibilities to
each object, the programmer can break down the programming problem
into chunks and thus manage complexity easier
•Objects are characterized as having: state, operations and
identity