...
Luokan jäsenmuuttujina voi olla myös muita luokkia. Tätä kutsutaan koostumiseksi.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.
Esimerkki 1. Koostuminen.
Code Block |
---|
class CProsessori |
...
{ |
...
}; |
...
class CRAM |
...
{ |
...
}; |
...
class CTietokone
{
private:
CProsessori prossu; // Luodaan prossu-olio CProsessori-luokasta
CRAM ram; // Luodaan ram-olio CRAM-luokasta
};
|
Tietokone koostuu prosessorista ja emolevystä (+ muista komponenteista). CTietokone-luokka siis koostuu CProsessori ja CRAM -luokista.
Kuva 1. UML-luokkakaavio.
Koostettujen luokkien käyttö
Koostettuja luokkien metodeja kutsutaan kuten muitakin luokkien, eli olioiden kautta. Eli: olion_nimi.metodin_nimi();
Anchor | ||||
---|---|---|---|---|
|
Esimerkki 2. Koostettujen olioiden kutsuminen.
...
Code Block |
---|
class CProsessori |
...
{ |
...
public: |
...
int Laske(); |
...
}; |
...
class CRAM { public: void Talleta(); |
...
}; |
...
class CTietokone
{
private:
CProsessori prossu;
CRAM muisti;
...
class CTietokone { private: CProsessori prossu; CRAM muisti; public: void Suorita(); }; void CTietokone::Suorita() { prossu.Laske(); muisti.Talleta(); |
...
} |
Kuva 2. UML-luokkakaavio.
};