h2. Koostuminen
Luokan jäsenmuuttujina voi olla myös muita luokkia. Tätä kutsutaan koostumiseksi.
Koostumista voidaan ajatella siten että jos Auto-luokka koostuu neljästä Rengas-luokan oliosta, Kori:sta, Moottori:sta, jne. Kaikki nämä ovat omia luokkiaan, joita voidaan käyttää muissakin yhteyksissä. Kun ne pistetään yhteen, ne muodostavat auton, joka koostuu renkaista, korista, moottorista jne. !koostuminen.png|border=1! !koostuminen2.png|border=1!
h3. Esimerkki 1. Koostuminen.
{code}
class CProsessori
{
};
class CRAM
{
};
class CTietokone
{
private:
CProsessori prossu; // Luodaan prossu-olio CProsessori-luokasta
CRAM ram; // Luodaan ram-olio CRAM-luokasta
};
{code}
Tietokone koostuu prosessorista ja emolevystä (\+ muista komponenteista). *CTietokone*\-luokka siis koostuu *CProsessori* ja *CRAM* \-luokista.
!koostuminen_esim1.png!
Kuva 1. UML-luokkakaavio.
h3. Koostettujen luokkien käyttö
Koostettuja luokkien metodeja kutsutaan kuten muitakin luokkien, eli olioiden kautta. Eli: *olion_nimi.metodin_nimi();*
{anchor:esim2}
h3. Esimerkki 2. Koostettujen olioiden kutsuminen.
{code}
class CProsessori
{
public:
int Laske();
};
class CRAM
{
public:
void Talleta();
};
class CTietokone
{
private:
CProsessori prossu;
CRAM muisti;
public:
void Suorita();
};
void CTietokone::Suorita()
{
prossu.Laske();
muisti.Talleta();
}
{code}
!koostuminen_esim2.png!
Kuva 2. UML-luokkakaavio. |