Para indicar que una clase contiene objetos de otra clase no es necesaria ninguna sintaxis especial. Cada uno de esos objetos no es más que un atributo y, por tanto, debe ser declarado como tal:
class <nombreClase> {
[modificadores] <NombreClase1> nombreAtributo1;
[modificadores] <NombreClase2> nombreAtributo2;
…
}
En unidades anteriores has trabajado con la clase Punto
, que definía las coordenadas de un punto en el plano, y con la clase Rectangulo
, que definía una figura de tipo rectángulo también en el plano a partir de dos de sus vértices (inferior izquierdo y superior derecho). Tal y como hemos formalizado ahora los tipos de relaciones entre clases, parece bastante claro que aquí tendrías un caso de composición: “un rectángulo contiene puntos”. Por tanto, podrías ahora redefinir los atributos de la clase Rectangulo
(cuatro números reales) como dos objetos de tipo Punto
:
class Rectangulo {
private Punto vertice1;
private Punto vertice2;
…
}
Ahora los métodos de esta clase deberán tener en cuenta que ya no hay cuatro atributos de tipo double
, sino dos atributos de tipo Punto
(cada uno de los cuales contendrá en su interior dos atributos de tipo double
).