Composición de clases

La composición es el agrupamiento de uno o varios objetos  y valores, como atributos, que conforman el valor de los distintos objetos de una clase. Normalmente, los atributos contenidos se declaran con acceso privado (private) y se inicializan en el constructor de la nueva clase.

Un ejemplo, que espero sea útil, puede ser la definición de una clase Claustro, donde un claustro está formado por un Catedrático, un Profesor, un Alumno, un Representante de la Administración y el Rector (los escribo en mayúscula porque son clases). En la siguiente definición, se suponen declaradas las clases necesarias para dichos objetos:

public class Claustro {
    private Profesor catedratico, titular, rector;
    private Alumno alumno;
    private Personal responsableAdmon;

    // Construcción de los objetos
    // en el constructor de la clase contenedora

    public Claustro(Profesor catedratico, Profesor titular, Profesor rector, Alumno alumno, Personal responsableAdmon) {

        this.catedratico = catedratico;
        this.titular = titular;
        this.rector = rector;
        this.alumno = alumno;
        this.responsableAdmon = responsableAdmon;
    }

}

La composición crea una relación tiene. Así, por ejemplo, la clase Automóvil tiene un número de bastidor, una matrícula, una fecha de compra, un dueño, un fabricante, etcétera. Todos esos elementos se representan utilizando el mecanismo de composición sobre la clase Automóvil, de la misma forma que se ha hecho en el ejemplo anterior con la clase Claustro.

Anuncios

Un comentario sobre “Composición de clases

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s