Разлика между променлива на екземпляр и локална променлива

Разлика между променлива на екземпляр и локална променлива
Разлика между променлива на екземпляр и локална променлива

Видео: Разлика между променлива на екземпляр и локална променлива

Видео: Разлика между променлива на екземпляр и локална променлива
Видео: Section 5 2024, Юли
Anonim

Променлива на екземпляр срещу локална променлива

Екземплярна променлива е тип променлива, която присъства в обектно-ориентираното програмиране. Това е променлива, която е дефинирана в клас и всеки обект от този клас съдържа отделно копие на тази променлива. От друга страна, използването на локални променливи не се ограничава до обектно ориентираните езици за програмиране. Това е променлива, която може да бъде оценена само в рамките на конкретен блок от код (напр. функция, блок за цикъл и т.н.), в който е дефинирана. Поради тази причина се казва, че локалните променливи имат локален обхват.

Какво е екземплярна променлива?

Променливите на екземпляра се използват в обектно-ориентираното програмиране за съхраняване на състоянието на всеки обект в клас. Те също са известни като членски променливи или полеви променливи. Променливите на екземпляра се декларират без използване на ключовата дума static в Java. Стойностите, съхранени в променливите на екземпляра, са уникални за всеки обект (всеки обект има отделно копие), а стойностите, съхранени в тях, представляват състоянието на този обект. Място за променлива на екземпляр се разпределя в купчината, когато този обект е разпределен в купчината. Следователно променливите на екземпляра се съхраняват в паметта, докато обектът е активен. Например, цветът на една кола е независим от цвета на друга кола. Така че цветът на автомобилен обект може да се съхранява в променлива на екземпляр. На практика променливите на екземпляра се декларират вътре в класовете и извън методите. Обикновено променливите на екземпляра се декларират като частни, така че да могат да бъдат достъпни само в класа, в който са декларирани.

Какво е локална променлива?

Локалните променливи са променливи с локален обхват и се декларират в конкретен кодов блок. Локалните променливи могат да се разглеждат като променливи, които се използват от метод за съхраняване на временното му състояние. Обхватът на локална променлива се определя с помощта на местоположението, където е декларирана променливата, и за тази цел не се използват специални ключови думи. Обикновено достъпът до локална променлива е ограничен в кодовия блок, който е деклариран (т.е. между отварящите и затварящите скоби на този кодов блок). Локалните променливи обикновено се съхраняват в стека на повикванията. Това ще позволи на рекурсивните извиквания на функции да поддържат свои собствени копия на локалните променливи, които да се съхраняват в отделни адресни пространства на паметта. Когато методът завърши изпълнението си, информацията за този метод се изважда от стека за извикване, като също така се унищожават локалните променливи, които са били съхранени.

Каква е разликата между променлива на екземпляр и локална променлива?

Променливите на екземпляра се декларират в класове извън методи и съхраняват състоянието на обект, докато локалните променливи се декларират в кодови блокове и се използват за съхраняване на състоянието на метод. Една променлива на екземпляр е активна, докато обектът, който съдържа тази променлива, е активен, докато локалната променлива е активна по време на изпълнението на този метод/кодов блок. Променлива на екземпляр (която е декларирана като публична) може да бъде достъпна в рамките на класа, докато локална променлива може да бъде достъпна само в рамките на кодовия блок, в който е декларирана. Използването на променливи на екземпляри е ограничено само до обектно ориентирано програмиране, докато локалните променливи нямат такова ограничение.

Препоръчано: