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ą one 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, w których obiekt A ma zmienną instancji o nazwie „Blah”, a obiekt B ma również zmienną instancji o nazwie „Blah”, „Blah” zmienne są odrębnymi elementami. 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 to „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 obiekt tego typu, C, jest tworzony, a obiekt C będzie miał również zmienną instancji „bla”, która może go miećS Własna unikalna wartość.

zmienne instancji są często mylone ze zmiennymi statycznymi, 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 wewnątrz określonego obiektu, obiektu i jego podklas lub od obiektu, w którym się znajduje, a także 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 publiczne InstaZmienne NCE 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 superklasie.

INNE JĘZYKI