Els llenguatges de programació tradicionalment han dividit el mon en dues parts -- les dades i les operacions sobre les dades. Les dades són estàtiques i inmutables, excepte que les operacions poden canviar-les. Els procediments i funcions que operen amb les dades no tenen l'últim estat d'elles; normalment només tenen l'abilitat d'afectar a les dades.
Aquesta divisió, per descomptat, es realitza d'acord amb la forma que treballen els ordinadors, així no és una cosa que pot ignorar-se facilment o deixar de banda. Igual a diferenciació extesa entre materia i eneria i entre noms i verbs, aquest conforma el rerefons amb el que nosaltres treballarem. En aquest punt, tots els programadors -- fins hi tot els programadors d'orientació a objectes -- han de desplegar les estructures de dades que els seus programes utilitzaran i definir les funcions que treballaran amb les dades.
En un llenguatge de programació procedimental com C, això és tot el que hi ha. El llenguatge pot oferir varies formes per suportar l'organització de dades i funcions, però no pot divir el mon de forma diferent. Les funcions i estructures de dades són els elements bàsics del disseny.
La programació orientada a objectes no tracta massa aquesta visió del món de com el reestructura a alt nivell. Aquests agrupa operacions i dades dins unes unitats modulars anomenades objecte i permet que combinis objectes dins xarxes estructurades per formar un programa complert. En un llenguatge de programació orientat a objectes, els objectes i les interaccions amb els objectes són els elements bàsics del disseny.
Cada objecte te l'estat (les dades) i el comportament (operacions sobre les dades). Així, no són massa diferents dels objectes reals. És fàcil veure com un aparell mecànic, com un rellotge de butxaca o un piano, incorpora tant l'estat com el comportament. Però gairebé qualsevol cosa que està dissenyada per fer un treball també ho fà. Fins hi tot coses simples sense parts mòvils com pot ser una ampolla combinen l'estat (com de plena està l'ampolla, si està oberta o no, quina temperatura té el contingut) amb el comportament (l'abilitat per oferir els seu contingut, per obrir-se o tancar-se, per suportar altes o baixes temperatures).
Aquesta semblança amb les coses reals és el que dona als objectes molta de la seva potència i solidesa. No només poden modelar-se components de sistemes reals, sinó que tant és poden realitzar assignament de rols com assignar components en sistemes de programari.