|
|
| (Hi ha 6 revisions intermèdies del mateix usuari que no es mostren) |
| Línia 1: |
Línia 1: |
| − | torna [[ M3 - Programació ]]
| |
| | | | |
| − | == Concepte de Classe ==
| |
| − |
| |
| − | === Estructura i membres ===
| |
| − |
| |
| − | [[DAM-M3-UF4._Caracterització_i_ús_d'objectes#Les_Classes_i_els_objectes]]
| |
| − |
| |
| − | La estructura d'una classe ''normal'' a Java és
| |
| − |
| |
| − | <pre>
| |
| − | public class NomClasse {
| |
| − | {constants}
| |
| − |
| |
| − | {atributs}
| |
| − |
| |
| − | {constructors}
| |
| − |
| |
| − | {getters / setters}
| |
| − |
| |
| − | {altres mètodes}
| |
| − | }
| |
| − | </pre>
| |
| − |
| |
| − | Per conveni:
| |
| − | * El nom de la classe comença amb majúscules.
| |
| − | * El nom dels atributs i mètodes comencen en minúscules.
| |
| − | * Si consten de vàries paraules, van seguides (sense espais o altres caràcters) i cada nova paraula comença amb majúscules.
| |
| − | * Primer van els atributs: constants i atributs normals.
| |
| − | * Després els mètodes: constructors, getters/setters i altres.
| |
| − |
| |
| − | === Atributs ===
| |
| − |
| |
| − | Els atributs defineixen l'estat dels objectes de la classe. Tots els objectes de la classe tenen els mateixos atributs però amb valors diferents.
| |
| − |
| |
| − | Aquests es poden precedir de modificadors que en determinen l’accés i el tipus. Els '''modificadors d’accés''' determinen la visibilitat dels atributs:
| |
| − | * Sense modificador, accessible des de les classes del mateix paquet
| |
| − | * '''private''', accessible des de la pròpia classe
| |
| − | * '''protected''', accessible des de la pròpia classe i subclasses
| |
| − | * '''public''', totalment accessibles
| |
| − |
| |
| − | En general els atributs sempre són ''private'' (o ''protected''). Les constants poden ser públiques si són d'utilitat.
| |
| − |
| |
| − | Els '''modificadors de tipus''':
| |
| − | * '''static''', atribut de classe
| |
| − | * '''final''', constant, el valor no pot canviar després de ser inicialitzat.
| |
| − |
| |
| − | <pre>
| |
| − | public class Alumne {
| |
| − | public static final int MAX_ALUMNES = 30;
| |
| − | private static int totalAlumnes;
| |
| − | private String dni;
| |
| − | private String nom;
| |
| − | private int edat;
| |
| − | }
| |
| − | </pre>
| |
| − |
| |
| − | === Mètodes ===
| |
| − |
| |
| − | === Tipus de classes ===
| |
| − |
| |
| − | Per establir el '''tipus de classe''', Java utilitza els modificadors: ''public, abstract, final, synchronizable''
| |
| − |
| |
| − | Sense modificador: Accessibles des del mateix paquet.
| |
| − |
| |
| − | * '''public''': Accessibles des de altres classes
| |
| − | * '''abstract''': Té mínim un mètode ''abstract ''que cal implementar.
| |
| − | * '''final''': no admet subclasses.
| |
| − | * '''syncronizable''': Per al tractament de ''fils'' (Threads). Tots els mètodes estan sincronitzats, no s’hi pot accedir des de diferents ''fils'' al mateix temps.
| |
| − |
| |
| − |
| |
| − | === Visibilitat ===
| |
| − |
| |
| − | Cal anar en compte amb els paquets que poden donar visions errònies de la visibilitat.
| |
| − |
| |
| − | {| cellspacing="0" cellpadding="4" border="1"
| |
| − | |-
| |
| − | | Visibilitat (des de ...)
| |
| − | | public
| |
| − | | protected
| |
| − | | private
| |
| − | | default
| |
| − | |-
| |
| − | | La pròpia classe
| |
| − | | Sí
| |
| − | | Sí
| |
| − | | Sí
| |
| − | | Sí
| |
| − | |-
| |
| − | | Una altra classe del propi paquet
| |
| − | | Sí
| |
| − | | Sí
| |
| − | | No
| |
| − | | Sí
| |
| − | |-
| |
| − | | Una altra classe fora del paquet
| |
| − | | Sí
| |
| − | | No
| |
| − | | No
| |
| − | | No
| |
| − | |-
| |
| − | | Una subclasse del propi paquet
| |
| − | | Sí
| |
| − | | Sí
| |
| − | | No
| |
| − | | Sí
| |
| − | |-
| |
| − | | Una subclasse fora del propi paquet
| |
| − | | Sí
| |
| − | | Sí
| |
| − | | No
| |
| − | | No
| |
| − | |}
| |