Els objectes són clau per a entendre la tecnologia orientada a objectes. Miri al seu voltant en aquest moment i trobarà molts exemples d'objectes del món real: el seu gos, el seu escriptori, el seu televisor, la seva bicicleta...
Els objectes del món real comparteixen dues característiques: Tots ells tenen estat i comportament. Els gossos tenen estat: nom, color, raça, fam i un comportament: lladrar, recollida, remenant la cua. Les bicicletes també tenen estat: relació de canvi actual, cadència de pedaleig actual, velocitat actual i comportament: canvi de marxes, canvi de la cadència de pedaleig, aplicació dels frens. Identificar l' estat i el comportament dels objectes del món real és una gran manera de començar a pensar en termes de programació orientada a objectes.
Prengui un minut per observar els objectes del món real que es troben en la seva àrea immediata . Per a cada objecte visible, feu dues preguntes:
En què estats possibles pot estar aquest objecte ? i
Què possible comportament pot realitzar aquest objecte?
Els objectes de programari són conceptualment similars als objectes del món real: ells també es componen d'estat i un comportament relacionat. Camps (Fields): Un objecte emmagatzema el seu estat en camps (variables en alguns llenguatges de programació) i
Mètodes (Methods): Un objecte exposa el seu comportament a través de mètodes (funcions en alguns llenguatges de programació) . Els mètodes operen en l'estat intern d'un objecte i serveixen com el principal mecanisme per a la comunicació d'objecte a objecte.
Encapsulació de dades (Bundle): És un principi fonamental de la programació orientada a objectes consistent en l'ocultació de l'estat intern i que requereix tota la interacció que es realitza a través de mètodes d'un objecte.
Penseu en la possibilitat d'una bicicleta, per exemple, atribuint els estats següents: velocitat actual, cadència de pedaleig actual i marxa actual i per altra banda, proporcionar mètodes per canviar aquest estat amb limitacions relacionades amb la seua aplicació. Per exemple, si la bicicleta només té 6 engranatges, un mètode per canviar de marxa hauria de rebutjar qualsevol valor que és menor que 1 o més gran que 6.
Encapsular (Bundle) codi en objectes individuals de programari proporciona una sèrie de beneficis, entre ells:Modularitat (Modularity): El codi font d'un objecte pot ser escrit i mantingut independentment del codi font d'altres objectes. Un cop creat, un objecte pot passar a l'interior del sistema.
Ocultació d'informació (Hiding): En interactuar només amb els mètodes d'un objecte, els detalls de la seva implementació interna romanen ocults del món exterior.
Reutilització de codi (Code re-use): Si ja hi ha un objecte (potser escrit per un altre desenvolupador de programari), pot utilitzar aquest objecte en el seu programa. Això permet als especialistes per implementar, comprovar, depurar, els objectes específics de la tasca, que després es pot executar en el seu propi codi amb seguretat i comfiança.
Endollabilitat i facilitat de depuració (Pluggability and debugging ease): Si un objecte particular resulta ser problemàtic, només s'ha d'eliminar de la seva aplicació i reemplaçar-lo per un objecte diferent. Això és anàleg a la solució de problemes mecànics en el món real. Si es trenca un pern, només cal substituir aquest en lloc de tota la màquina .