|
|
(Hi ha 24 revisions intermèdies del mateix usuari que no es mostren) |
Línia 1: |
Línia 1: |
− | torna [[ M3 - Programació ]]
| |
| | | |
− | == Programació Orientada a objectes (POO) ==
| |
− |
| |
− | La POO és un paradigma de programació.
| |
− |
| |
− | Es representa el sistema com una col·lecció d’objectes amb certes propietats.
| |
− |
| |
− | Aquests reben estímuls externs o esdeveniments interns, i en resposta:
| |
− |
| |
− | * Intercanvien informació
| |
− | * Canvien el seu '''estat '''(Les seves propietats)
| |
− | * Produeixen resultats observables (Informació per consola, creació d'un botó, etc...)
| |
− |
| |
− | Les responsabilitats del Sistema queden així repartides entre els objectes que col·laboren entre ells
| |
− |
| |
− | Per comunicar-se els objectes intercanvien '''''missatges'''''.
| |
− |
| |
− | == Les Classes i els objectes ==
| |
− |
| |
− | Una '''classe''' descriu la estructura d'entitats del mateix tipus. Cadascuna d'aquestes entitats s'anomena '''objecte'''.
| |
− |
| |
− | La classe recull totes les propietats i comportaments comuns d’aquestes entitats, però no les que difereixen.
| |
− |
| |
− | Els '''objectes''' són instàncies d’una classe, representen un estat real d’un classe on les propietats que defineixen la classe tenen un valor concret.
| |
− |
| |
− | Es poden descriure els objectes des d’un punt vista
| |
− |
| |
− | * Estàtic: El valor de les seves propietats, '''atributs''' (''Estat'')
| |
− | * Dinàmica: Com respon a esdeveniments externs, '''mètodes''' (''Comportament'')
| |
− |
| |
− | [[File: ObjectClass.png]]
| |
− |
| |
− | === Descripció estàtica. Atributs ===
| |
− |
| |
− | Els atributs, poden ser de dos tipus segons l’àmbit:
| |
− |
| |
− | * Atributs '''d’instància''' poden tenir un valor diferent per a cada objecte.
| |
− | * Atributs '''de classe'''. Tenen el mateix valor per a tots els objectes de la classe. Només hi ha una còpia de l'atribut que comparteixen tots els objectes de la classe.
| |
− |
| |
− | Es defineixen diferents nivells d’accés sobre els atributs, de manera general:
| |
− |
| |
− | * Visibilitat '''pública''': Atributs accessibles externament.
| |
− | * Visibilitat '''privada''': Només accessibles internament.
| |
− | * Visibilitat '''protegida''': Només accessibles internament i des dels descendents.
| |
− |
| |
− | === Descripció dinàmica. Mètodes ===
| |
− |
| |
− |
| |
− | Pot haver-hi quatre tipus de operacions o mètodes:
| |
− |
| |
− | * '''Constructors i destructors''': Els primers es criden en el moment que s’instancia una classe, o sigui quan es crea un objecte. Tenen el mateix nom que la classe. Java no necessita destructors.
| |
− | * '''Modificadors''' (Setter): Permeten modificar el valor d’un atribut
| |
− | * '''Consultors''' (Getter): Permeten obtenir el valor d’un atribut
| |
− | * '''Altres'''. Qualsevol altre mètode
| |
− |
| |
− | Les operacions també poden tenir diferents àmbit:
| |
− |
| |
− | * Operacions '''d’objecte'''. S’apliquen als objectes de la classe.
| |
− | * Operacions '''de classe'''. S’apliquen a la classe (Per exemple les operacions constructores i destructores, i els Getter/Setter sobre atributs de classe).
| |
− |
| |
− |
| |
− | Els nivells d’accés sobre els mètodes,de manera general:
| |
− |
| |
− | * Visibilitat '''pública''': Atributs accessibles externament.
| |
− | * Visibilitat '''privada''': Només accessibles internament.
| |
− |
| |
− |
| |
− | Exemple
| |
− |
| |
− | {| [[File: alumne.jpg]] |
| |
− | (+) Significa public
| |
− | (-) Significa privat
| |
− | Subratllat fa referència a àmbit de classe
| |
− | |}
| |
− |
| |
− | === Instanciació, ús dels objectes ===
| |
− |
| |
− | Per exemple suposem la classe ''Qualsevol'', aquesta classe té
| |
− | * Un atribut ''atribut1''
| |
− | * Un mètode
| |
− |
| |
− | === Tipus primitius vs Objectes ===
| |
− |
| |
− | == Conversions de tipus ==
| |