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 szerkesztés

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 szerkesztés

  1. The Java Tutorial, Variables. docs.oracle.com. Oracle. [2014. október 23-i dátummal az eredetiből archiválva]. (Hozzáférés: 2014. október 23.)
  2. Matuszek: Static. cis.upenn.edu. University of Pennsylvania. [2014. október 23-i dátummal az eredetiből archiválva]. (Hozzáférés: 2014. október 23.)

Fordítás szerkeszté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.