Różnica Między Zmienną Instancji A Zmienną Lokalną

Różnica Między Zmienną Instancji A Zmienną Lokalną
Różnica Między Zmienną Instancji A Zmienną Lokalną

Wideo: Różnica Między Zmienną Instancji A Zmienną Lokalną

Wideo: Różnica Między Zmienną Instancji A Zmienną Lokalną
Wideo: Zasięg zmiennych. Zmienne lokalne i globalne (Python kurs dla początkujących #26) 2024, Kwiecień
Anonim

Zmienna instancji a zmienna lokalna

Zmienna instancji to typ zmiennej występujący w programowaniu obiektowym. Jest to zmienna zdefiniowana w klasie, a każdy obiekt tej klasy zawiera oddzielną kopię tej zmiennej. Z drugiej strony użycie zmiennych lokalnych nie ogranicza się do języków programowania obiektowego. Jest to zmienna, która może być oceniana tylko w ramach określonego bloku kodu (np. Funkcji, bloku pętli itp.), W którym jest zdefiniowana. Z tego powodu mówi się, że zmienne lokalne mają zasięg lokalny.

Co to jest zmienna instancji?

Zmienne instancji są używane w programowaniu obiektowym do przechowywania stanu każdego obiektu w klasie. Znane są również jako zmienne składowe lub zmienne pól. Zmienne instancji są deklarowane bez użycia słowa kluczowego static w Javie. Wartości przechowywane w zmiennych instancji są unikalne dla każdego obiektu (każdy obiekt ma oddzielną kopię), a wartości w nich przechowywane reprezentują stan tego obiektu. Miejsce na zmienną instancji jest przydzielane w stercie, gdy ten obiekt jest alokowany w stercie. Dlatego zmienne instancji są przechowywane w pamięci tak długo, jak długo obiekt jest aktywny. Na przykład kolor jednego samochodu jest niezależny od koloru innego samochodu. Tak więc kolor obiektu samochodu może być przechowywany w zmiennej instancji. W praktyce zmienne instancji są deklarowane wewnątrz klas i poza metodami. Zazwyczaj,zmienne instancji są zadeklarowane jako prywatne, aby można było uzyskać do nich dostęp tylko w ramach klasy, w której zostały zadeklarowane.

Co to jest zmienna lokalna?

Zmienne lokalne to zmienne o zasięgu lokalnym, które są zadeklarowane w określonym bloku kodu. Zmienne lokalne można postrzegać jako zmienne używane przez metodę do przechowywania jej stanu tymczasowego. Zakres zmiennej lokalnej jest określany na podstawie lokalizacji, w której zmienna jest zadeklarowana i nie są do tego używane specjalne słowa kluczowe. Zwykle dostęp do zmiennej lokalnej jest ograniczony w obrębie bloku kodu, w którym została zadeklarowana (tj. Między nawiasami otwierającymi i zamykającymi tego bloku kodu). Zmienne lokalne są zwykle przechowywane w stosie wywołań. Pozwoliłoby to wywołaniom funkcji rekurencyjnych na utrzymywanie własnych kopii zmiennych lokalnych, które byłyby przechowywane w oddzielnych przestrzeniach adresowych pamięci. Kiedy metoda kończy wykonywanie, informacje o tej metodzie są wyrzucane ze stosu wywołań, niszcząc również lokalne zmienne, które były przechowywane.

Jaka jest różnica między zmienną instancji a zmienną lokalną?

Zmienne instancji są deklarowane w klasach poza metodami i przechowują stan obiektu, podczas gdy zmienne lokalne są deklarowane w blokach kodu i służą do przechowywania stanu metody. Zmienna instancji jest aktywna tak długo, jak długo obiekt, który zawiera tę zmienną, jest aktywny, podczas gdy zmienna lokalna jest aktywna podczas wykonywania tej metody / bloku kodu. Do zmiennej instancji (która jest zadeklarowana jako publiczna) można uzyskać dostęp w ramach klasy, natomiast do zmiennej lokalnej można uzyskać dostęp tylko w ramach bloku kodu, który jest zadeklarowany. Użycie zmiennych instancji jest ograniczone tylko do programowania obiektowego, podczas gdy zmienne lokalne nie mają takiego ograniczenia.

Zalecane: