Példányváltozó
Az osztályalapú objektumorientált programozásban egy példányváltozó egy osztályban definiált változó (azaz egy tagváltozó), amelyre az osztály minden példányosított objektumának van egy külön másolata vagy példánya. Egy példányváltozó hasonlóságot mutat egy[1] osztályváltozóval, de nem statikus. A példányváltozó egy olyan változó, amely egy osztályban van deklarálva, de konstruktorokon, metódusokon vagy blokkon kívül. A példányváltozók akkor jönnek létre, amikor egy objektumot példányosítanak, és az osztály összes konstruktora, metódusa vagy blokkja számára elérhetők. Hozzáférési módosítók adhatók a példányváltozóhoz.
A példányváltozó nem osztályváltozó, bár vannak hasonlóságok. Ez egy osztályattribútum (vagy osztálytulajdonság, mező vagy adattag) típusa. Ugyanez a kettősség a példány és az osztály tagjai között vonatkozó metódusokra ("tagfüggvényekre") is; egy osztálynak lehetnek példánymetódusai és osztálymetódusai is.
A változók olyan tulajdonságok, amelyeket az objektum ismer magáról. Egy objektum minden példányának megvannak a saját példányváltozói, még akkor is, ha az egyik objektum értéke ugyanaz. Egy objektumpéldány módosíthatja példányváltozóinak értékeit anélkül, hogy az összes többi példányt érintené. A példányváltozókat egy osztály összes metódusa használhatja, kivéve, ha a metódus statikusnak van deklarálva.[2]
Példa
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;
Ebben a C++ példában a Request::number
példányváltozó a Request::count1
osztályváltozó másolata, ahol minden felépített példányhoz hozzárendelnek egy count1
szekvenciális értéket, mielőtt megnövelnénk. Mivel a number
egy példányváltozó, minden Request
objektum saját külön értéket tartalmaz; ezzel szemben csak egy objektum Request::count1
érhető el minden példány számára aminek értéke azonos.
Jegyzetek
Fordítás
Ez a szócikk részben vagy egészben az Instance variable című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.