Resum

La metodologia de l’orientació a objectes és una eina per resoldre problemes i desenvolupar aplicacions d’una manera propera al pensament humà. Un dels seus avantatges principals és que permet plantejar una solució inicial des d’un punt de vista de disseny, sense haver de codificar res.

La clau de la metodologia de l’orientació a objectes és que tot problema es pot plantejar com una simulació d’un escenari en el món real. Cada element rellevant és un objecte, que és especificat per unes característiques essencials. Les propietats d’aquests objectes, o el seu estat, són donades pels seus atributs. El seu comportament, o la manera en què pot interactuar dins la simulació, és donat per la llista de les seves operacions. Tots els objectes interactuen entre ells, invocant operacions entre ells, per dur a terme la resolució del problema.

En el plantejament de l’escenari o simulació, els diferents conjunts d’objectes amb característiques comunes es poden agrupar per tipus, les anomenades classes. A l’hora d’especificar les característiques dels objectes, tant de disseny com d’implementació, el que es crea realment són les classes, que serveixen de motlle per generar objectes. Es diu que un objecte és una instància d’una classe.

Una eina molt útil per fer-se una idea de l’estructura d’un programa, tal com es compon mitjançant instàncies de classes, són els mapes d’objectes. Aquests permeten generar un esquema de l’estat d’un programa en un moment donat de la seva execució, tal com es plasmaria a la memòria, indicant quins són els enllaços existents entre instàncies. Tal com passa en una màquina, només poden interactuar objectes enllaçats.

Un cop es tenen presents els principis bàsics de la metodologia des d’un punt de vista teòric, és possible generar el codi usant qualsevol llenguatge orientat a objectes. En aquest cas, l’escollit és el llenguatge Java. Aquest és un llenguatge de programació orientat a objectes, desenvolupat per l’empresa nord-americana Sun Microsystems al principi dels anys noranta, però actualment propietat de l’empresa d’Oracle, i va aparèixer per donar resposta a l’objectiu de disposar d’un llenguatge que permetés escriure el codi una única vegada i executar-lo en qualsevol lloc (”write once, run anywhere” en paraules del seu creador James Gosling).

En la definició d’una classe s’aprecien diversos elements. Per una banda, la capçalera de la classe incorpora obligatòriament la paraula reservada class i el nom de la classe. D’altra banda, l’interior de la classe incorpora la definició de les dades, iniciadors i mètodes. Els membres de la classe (dades, iniciadors i mètodes) poden estar situats en qualsevol lloc de l’interior de la classe, però s’acostuma a situar-los en l’ordre indicat: dades, iniciadors i mètodes. Els tres tipus d’elements són optatius, però és molt estrany definir classes que no tinguin dades ni mètodes.

Les dades i els mètodes incorporen els modificadors d’accés, que poden ser public o private. En el primer cas, es permet que el membre sigui accessible des de qualsevol classe. En el segon, es prohibeix l’accés al membre des de qualsevol classe. Les dades, a més del modificador d’accés, poden incorporar els modificadors final, on la dada passa a ser constant, de manera que una vegada ha agafat valor ja no el pot canviar, i static, on la dada passa a ser compartida (dada global) per tots els objectes de la classe. Aquestes dades es creen en el moment en què es carrega la classe malgrat que no hi hagi cap instància (objecte) de la classe.

Les dades, en la seva declaració, poden incorporar un valor d’inicialització. En el seu defecte, les dades corresponents a tipus primitius són automàticament inicialitzades amb els valors zero si es tracta de dades numèriques, o caràcter i null si es tracta de dades booleanes.

Els iniciadors, si n’hi ha, són blocs de codi que s’executen segons les regles següents. Si és estàtic, fet que es reconeix perquè va precedit de la paraula reservada static, únicament s’executa quan la classe es carrega (per tant, una única vegada). Respecte a les dades de la pròpia classe, només té accés a les dades static. En cas contrari, s’executa cada vegada que es crea un objecte, després de l’execució de les inicialitzacions explícites.

Com a resum, la definició d’una classe segueix l’estructura següent:

[public] class NomClasse [extends ClasseBase] [implements Interfície1, Interfície2...] {    
[modificadorAccés][final][static] tipusDada nomDada [=<valorInicial>];    
...    
[static] {<blocIniciador>}    
...    
[modificadorAccés][final][static] tipusRetorn nomMètode (<llistaArs>);    
... 
}
Anar a la pàgina següent:
Mapa conceptual