Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Pääsynmäärittäjien Avainsanat | Kapseloinnin Yleiskatsaus
C++ OOP

Pääsynmäärittäjien Avainsanat

Pyyhkäise näyttääksesi valikon

Kapselointi saavutetaan pääasiassa käyttämällä näkyvyysmääreitä. Nämä määreet säätelevät, kuinka laajasti ohjelman muut osat pääsevät käsiksi luokan jäseniin (sekä tietoihin että funktioihin). Kolme pääasiallista näkyvyysmäärettä ovat:

  • private: saatavilla vain saman luokan sisällä ja piilotettu luokan ulkopuolelta. Tämä on luokan jäsenten oletusnäkyvyys;

  • protected: saatavilla luokan ja sen perivien luokkien sisällä. Nämä ovat laajemmin saatavilla kuin private-jäsenet, mutta tarjoavat silti tietosuojaa;

  • public: saatavilla mistä tahansa ohjelman osasta. Vaikka public-jäsenet eivät ole kapseloituja, ne ovat olennaisia luokan ulkoisen rajapinnan määrittelyssä.

Note
Huomio

Näkyvyysmääre pysyy voimassa, kunnes toinen määre määritellään tai kohdataan.

main.cpp

main.cpp

12345678910111213
#include <iostream> class Person { public: std::string name; }; int main() { Person person; person.name = "Bob"; std::cout << person.name; }
Note
Huomio

Kokeile poistaa tai muuttaa public-avainsanaa ja katso, mitä tapahtuu.

Samoin kuin kuljettaja voi käyttää autoa ymmärtämättä sen sisäistä rakennetta, käyttäjien ja ohjelmoijien ei tarvitse olla huolissaan luokan private-attribuuteista ja -metodeista. Noudata näitä sääntöjä:

  • Pidä tietojäsenet private- tai protected-määriteltyinä;
  • Tarjoa public-metodit private-datan käsittelyyn ja muokkaamiseen;
  • Varmista, että nämä metodit tekevät vain sen, mihin ne on tarkoitettu, paljastamatta sisäistä logiikkaa.

Hyvin kapseloitu class paljastaa vain käyttäjille tarpeelliset asiat ja piilottaa sisäisen tilansa sekä toteutuksen yksityiskohdat.

question mark

Mitä tapahtuu, jos yrität käyttää luokan yksityistä jäsentä suoraan luokan ulkopuolelta?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 2

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 3. Luku 2
some-alt