Diferència entre revisions de la pàgina «DAM-M3-UF4. Caracterització i ús d'objectes»

De Wiki IES Marianao. Departament Informàtica
Dreceres ràpides: navegació, cerca
(Tipus primitius vs Objectes)
Línia 83: Línia 83:
 
=== Instanciació, ús dels objectes ===
 
=== Instanciació, ús dels objectes ===
  
 
+
<pre>
 
+
        Alumne a = new Alumne();  // Instanciació 1
Per exemple suposem la classe ''Qualsevol'', aquesta classe
+
        Alumne b;
* Un atribut ''atribut1''
+
        b = new Alumne();        // Instanciació 2
* Un mètode
+
     
 
+
        // Accés atributs
 +
        a.dni = "52628669T";
 +
        a.nom = "Alex M.";
 +
        a.edat = 23; // Error, edat és privat
 +
     
 +
        // Ús de mètodes
 +
        a.setEdat(37);
 +
        int edat = a.getEdat();
 +
        System.out.println(a.mostrarInfo());
 +
     
 +
        // Àmbit de classe
 +
        Alumne.totalAlumnes = 2;
 +
</pre>
  
  
Línia 104: Línia 116:
 
Però també es poden definir múltiples constructors diferents que permetin instanciar els objectes de maneres diferents depenent de la necessitat.
 
Però també es poden definir múltiples constructors diferents que permetin instanciar els objectes de maneres diferents depenent de la necessitat.
  
Normalment s'utilitza els constructors per inicialitzar els atributs directament en el moment de crear-los
+
Normalment s'utilitza els constructors per inicialitzar els atributs directament en el moment de crear-los.
  
 
[[File: alumne2.jpg]]
 
[[File: alumne2.jpg]]

Revisió del 12:43, 30 maig 2012

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)

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

Alumne.jpg

(+) Significa public

(-) Significa privat

Subratllat fa referència a àmbit de classe


Instanciació, ús dels objectes

        Alumne a = new Alumne();  // Instanciació 1
        Alumne b;
        b = new Alumne();         // Instanciació 2
       
        // Accés atributs
        a.dni = "52628669T";
        a.nom = "Alex M.";
        a.edat = 23; // Error, edat és privat
       
        // Ús de mètodes
        a.setEdat(37);
        int edat = a.getEdat();
        System.out.println(a.mostrarInfo());
       
        // Àmbit de classe
        Alumne.totalAlumnes = 2;


Constructors

Els constructors son els mètodes estàtics que es defineixen a les classes per instanciar els objectes.

Per defecte, si no es defineix cap constructor, Java assumeix la existència d'un genèric sense paràmetres

     Alumne a = new Alumne();


Però també es poden definir múltiples constructors diferents que permetin instanciar els objectes de maneres diferents depenent de la necessitat.

Normalment s'utilitza els constructors per inicialitzar els atributs directament en el moment de crear-los.

Alumne2.jpg

     Alumne a = new Alumne("52628669T", "Alex M", 37);


Referències

assignació d'objectes vs clonació

Tipus primitius vs Objectes

Els tipus primitius comencen amb minúscules

Els objectes comencen amb majúscules

Conversions de tipus