Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

Enkapsulointi

Enkapsulointi piilottaa toteutukseen liittyvät muuttujat ja metodit muiden luokkien näkyvistä. Enkapsuloitu luokka tarjoaa rajapinnan

...

(interface),

...

jolla

...

luokkaa

...

voidaan

...

käyttää.

...

Enkapsuloinnin

...

avulla

...

voidaan

...

luokan

...

toteutusta

...

muuttaa

...

ilman,

...

että

...

sitä

...

käyttävät

...

tahot

...

joutuvat

...

muuttamaan

...

omaa

...

koodiaan.

...

Yleisesti

...

kannattaa

...

piilottaa

...

kaikki

...

sellainen,

...

johon

...

muiden

...

ei

...

tarvitse

...

päästä

...

"kiinni".

...

Näin

...

estetään

...

vahingossa

...

muuttamasta

...

sellaisten

...

muuttujien

...

arvoja,

...

joita

...

on

...

tarkoitus

...

käyttä

...

vain

...

luokan

...

sisäisesti.

...

Esimerkiksi

...

CElain-luokka:

{
Code Block
}
class CElain
{
public:
    CElain();                         // Muodostin
    void AsetaNimi(char Nimi[]);      // Asettaa eläimen nimen
    void AsetaMassa(float Massa);     // Asettaa eläimen massan
    void Tulosta();

private:
    char m_Nimi[100];                 // Eläimen nimi
    float m_Massa;                    // Eläimen massa, paino

    void TulostaNimi();               // Tulostaa ruudulle eläimen nimen
    void TulostaMassa();              // Tulostaa ruudulle eläimen massan
};
{
Code Block
}

{code}
int main()
{
    CElain kissa;

    kissa.Tulosta();
}
{code}

Yllä

...

olevassa

...

esimerkissä

...

Tulosta()

...

-funktio

...

on

...

ainoa

...

julkinen

...

funktio

...

kyselyyn.

...

Jatkossa

...

saatetaan

...

haluta

...

muuttaa

...

luokkaa

...

siten,

...

että

...

siihen

...

lisätään

...

vaikka

...

seuraavat

...

ominaisuudet:

...

väri,

...

säkäkorkeus,

...

elinalueet.

...

Näille

...

kirjoitetaan

...

TulostaXXX()

...

-funktiot.

...

Koska

...

CElain-luokka

...

tarjoaa

...

yhden

...

julkisen

...

Tulosta()

...

-metodin,

...

on

...

helppo

...

tehtävä

...

lisätä

...

nämä

...

uudet

...

ominaisuudet

...

tulostettaviksi.