From Wikipedia, the free encyclopedia
Luokkapohjaisessa olio-ohjelmoinnissa instanssimuuttuja eli ilmentymämuuttuja on luokassa määritetty muuttuja, jolle jokaisella luokan ilmennetyllä oliolla on oma kopio tai instanssi . Ilmentymämuuttujalla on yhtäläisyyksiä luokkamuuttujan [1] kanssa, mutta se ei ole staattinen. Ilmentymämuuttuja on muuttuja, joka on luotu luokassa, mutta joka on rakentajien, metodien tai lohkojen ulkopuolella. Instanssimuuttujat luodaan, kun olio instantoidaan, ja ne ovat kaikkien luokan rakentajien, metodien ja lohkojen käytettävissä. Instanssimuuttujalle voidaan antaa pääsymäärityksiä.
Instanssimuuttuja ei ole luokkamuuttuja, vaikka niissä on yhtäläisyyksiä. Se on tyypiltään luokkaattribuutti (tai luokan ominaisuus, kenttä tai tietojäsen). Sama dikotomia instanssin ja luokan jäsenten välillä koskee myös metodeja ("jäsenfunktioita"); luokassa voi olla sekä instanssimetodeja että luokkametodeja.
Jokainen instanssimuuttuja elää muistissa sen omistaman olion eliniän ajan.[2]
Muuttujat ovat ominaisuuksia, jotka olio tietää itsestään. Kaikilla olion instansseilla on omat kopionsa instanssimuuttujista, vaikka arvo olisi sama oliosta toiseen. Yksi olioinstanssi voi muuttaa instanssimuuttujiensa arvoja vaikuttamatta muihin instansseihin. Instanssimuuttujia voidaan käyttää kaikissa luokan metodeissa, ellei metodia ole asetettu staattiseksi. [3]
struct Request {
static int count1; // muuttujan nimellä ei ole merkitystä
int number;
Request() {
number = count1; // muuttaa instanssimuuttujaa "this->number"
++count1; // muuttaa luokkamuuttujaa "Request::count1"
}
};
int Request::count1 = 0;
Tässä C++- esimerkissä instanssimuuttuja Request::number
on kopio luokkamuuttujasta Request::count1
, jossa jokaiselle rakennetulle instanssille annetaan peräkkäisarvo count1
ennen sen kasvattamista . Koska number
on instanssimuuttuja, jokainen Request
olio sisältää oman erillisen arvonsa; sitä vastoin kaikille instansseille, joilla on sama arvo, on vain yksi olio Request::count1
.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.