Skip to main content

Co to jest zmienna instancji?

Zmienna instancji to element danych w programowaniu zorientowanym na obiekty, który ma swoją własną unikalną wartość dla każdego obiektu, w którym się znajduje.Zmienne instancji mogą być również nazywane członkami instancji, dziedzinami nietatycznymi i członkami danych.Są ważną częścią większości obiektów, trzymając określone dane, których obiekt używa do obliczania.

Na przykład, jeśli istnieją dwa obiekty, A i B, gdzie obiekt A ma zmienną instancji o nazwie Bla, a także obiekt BMa zmienną instancji o nazwie Blah, dwie zmienne bla są odrębnymi bytami.Każda zmienna jest powiązana z obiektem, który ją zawiera.Pełna nazwa zmiennej bla powiązana z obiektem A to a.blah, podczas gdy pełna nazwa zmiennej bla powiązana z obiektem B jest B.Blah.Każda z tych zmiennych może mieć własną wartość.Jeśli obiekty A i B są tego samego typu, a inny tego typu, C, C tworzony, a obiekt C będzie miał również zmienną instancji, która może mieć własną unikalną wartość.

Zmienne instancji są często myloneZmienne statyczne, ale oba są znacząco różne.W przeciwieństwie do zmiennych instancji, których każdy obiekt konkretnego typu ma swój własny, zmienne statyczne mają tylko jedną wartość, a ta wartość jest taka sama dla każdego obiektu odpowiedniego typu.Zmienne statyczne są często nazywane zmiennymi klasowymi, które nie są takie same jak zmienne instancji.

W zależności od przypisanych właściwości widoczności, zmienne instancji mogą być widoczne tylko w określonym obiekcie, obiektu i jego podklas lub do obiektu lub obiektu, od obiektu lub do obiektu lub do obiektu lub obiektu, do obiektu lub do obiektu lub obiektuw którym mieszka, podobnie jak wszelkie inne obiekty.Ten ostateczny rodzaj widoczności, zwany widocznością publiczną, jest często uważany za złą praktykę na przykład zmienne, ponieważ łatwo jest naruszyć zasady enkapsulacji w programowaniu zorientowanym na obiekt.Pomimo tego tabu są czasy, w których zmienne instancji publicznej są przydatne.Na przykład wiele standardowych klas w Javie ma zmienne instancji publicznej, co czasami pozwala na łatwą modyfikację właściwości.

Widoczność zmiennej instancji również wchodzi w grę z dziedzictwem.Jeśli jedna klasa dziedziczy po drugiej, nie daje to natychmiast obu klasom dostępu do zmiennych instancji.Prywatne zmienne instancji w nadklasie i podklasie pozostają ograniczone tylko do tych klas, więc prywatna zmienna w podklasie nie może być widoczna przez nadklasę i odwrotnie.Jedynymi zmiennymi instancji, które mogą zobaczyć zarówno nadklasa, jak i podklasa, są zmienne chronione w superklasy.