Diferència entre revisions de la pàgina «DAM-M3-UF4. Conceptes d'Orientació a Objectes»

De Wiki IES Marianao. Departament Informàtica
Dreceres ràpides: navegació, cerca
(Composició. Associació de classes)
(Multiplicitat)
Línia 118: Línia 118:
  
  
En general la composició pot implicar una relació 1:molts entre dues classe
+
En general la composició pot implicar una relació ''1:molts'' entre dues classes
  
 
== Tipus de composició. UML associació, composició i agregació ==
 
== Tipus de composició. UML associació, composició i agregació ==

Revisió del 17:23, 5 set 2012

torna M3 - Programació

Els pilars de la OO

  • Encapsulament
  • Ocultació
  • Herència
  • Polimorfisme

http://es.scribd.com/doc/52944613/17/Encapsulacion-y-ocultacion-de-datos

Encapsulament. Ocultació

http://boards4.melodysoft.com/2004BFDP0205/encapsulacion-y-ocultacion-de-datos-5.html

Composició. Associació de classes

La composició de classes fa referència a usar classes dins altres classes.

package dam.m3.uf4;

public class Punt {
    private int x;
    private int y;
   
    public Punt(int x, int y) {
        super();
        this.x = x;
        this.y = y;
    }
    public int getX() {
        return x;
    }
    public void setX(int x) {
        this.x = x;
    }
    public int getY() {
        return y;
    }
    public void setY(int y) {
        this.y = y;
    }
}
package dam.m3.uf4;

public class Cercle {
    private Punt centre;
    private int radi;
   
    public Punt getCentre() {
        return centre;
    }
    public void setCentre(Punt centre) {
        this.centre = centre;
    }
    public int getRadi() {
        return radi;
    }
    public void setRadi(int radi) {
        this.radi = radi;
    }
}


La representació de la composició (En UML s'anomena associació)

Associacio.png


El tractament d'atributs amb multiplicitat 1 (unaris) d'altres classes és igual que els atributs de tipus primitius.

La principal complicació és la gestió de la inicialització, cal recordar que mentre un objecte no s'instància té un valor null i l'accés a les seves propietats genera error en temps d'execució.


    /* Aquest constructor, deixa la responsabilitat de l'objecte
     * centre a la entitat externa que instància el Cercle.
     *
     * Cercle c1 = new Cercle(new Punt(2,4), 10)
     * Cercle c2 = new Cercle(null, 10)
     */
    public Cercle(Punt centre, int radi) {
        this.centre = centre;
        this.radi = radi;
    }

    /* Aquest constructor pren tota la responsabilitat i obliga
     * a la entitat externa a proporcionar tota la informació necessària.
     *
     * Cercle c1 = new Cercle(new Punt(2,4), 10)
     * Cercle c2 = new Cercle(null, 10)
     */
    public Cercle(int x, int y, int radi) {
        this.centre = new Punt(x,y);
        this.radi = radi;
    }
   
    /* Aquest constructor sempre inicialitza centre = null
     *
     * Cercle c3 = new Cercle(10)
     */
    public Cercle(int radi) {
        this.radi = radi;
    }


Multiplicitat

En general la composició pot implicar una relació 1:molts entre dues classes

Tipus de composició. UML associació, composició i agregació

http://www.dcc.uchile.cl/~psalinas/uml/modelo.html


Herència