Ilmentymän muuttuja - Instance variable
In olio-ohjelmointi , jossa luokat , esimerkiksi muuttuja on muuttuja määritellään luokan (eli jäsen muuttuja ), josta kukin instantiated kohde luokan on erillinen kappale, tai esimerkiksi. Ilmentymämuuttujalla on samankaltaisuuksia luokkamuuttujan kanssa , mutta se ei ole staattinen. Esimerkkimuuttuja on muuttuja, joka on ilmoitettu luokassa, mutta ei konstruktorien, menetelmien tai lohkojen ulkopuolella. Ilmentymän muuttujat luodaan, kun objekti luodaan, ja ne ovat kaikkien luokan konstruktorien, menetelmien tai lohkojen käytettävissä. Ilmentymän muuttujille voidaan antaa esiintymämuuttuja.
Ilmentymamuuttuja ei ole luokkamuuttuja, vaikka on samankaltaisuuksia. Se on luokan määritteen tyyppi (tai luokan ominaisuus, kenttä tai tietojäsen). Sama kaksijakoisuus instanssin ja luokan jäsenten välillä pätee myös menetelmiin ("jäsenfunktiot"); luokalla voi olla sekä instanssimenetelmiä että luokkamenetelmiä .
Jokainen ilmentymämuuttuja säilyy muistissa koko sen kohteen ajan, jonka se omistaa.
Muuttujat ovat ominaisuuksia, jotka objekti tietää itsestään. Kaikilla objektin esiintymillä on omat kopionsa esiintymämuuttujista, vaikka arvo olisi sama objektista toiseen. Yksi objektiesimerkki voi muuttaa ilmentymän muuttujien arvoja vaikuttamatta kaikkiin muihin esiintymiin. Ilmentymän muuttujia voidaan käyttää kaikissa luokan menetelmissä, ellei menetelmää ole ilmoitettu staattiseksi.
Esimerkki
struct Request {
static int count1; // variable name is not important
int number;
Request() {
number = count1; // modifies the instance variable "this->number"
++count1; // modifies the class variable "Request::count1"
}
};
int Request::count1 = 0;
Tässä C ++ -esimerkissä ilmentymämuuttuja Request::numberon kopio luokkamuuttujasta, Request::count1jossa kullekin rakennetulle instanssille on määritetty peräkkäinen arvo count1ennen sen lisäämistä . Koska kyseessä numberon ilmentymämuuttuja, jokainen Requestobjekti sisältää oman erillisen arvon; sitä vastoin on vain yksi objekti, joka on Request::count1käytettävissä kaikissa esiintymissä, joilla on sama arvo.