Змінна екземпляра проти локальної змінної
Змінна інстанція - це тип змінної, який присутній в об'єктно-орієнтованому програмуванні. Це змінна, яка визначена в класі, і кожен об'єкт цього класу містить окрему копію цієї змінної. З іншого боку, використання локальних змінних не обмежується об'єктно-орієнтованими мовами програмування. Це змінна, яка може бути оцінена лише в певному блоці коду (наприклад, функція, блок циклу тощо), в якому вона визначена. З цієї причини, як кажуть, локальні змінні мають локальну область.
Що таке змінна інстанція?
Змінні екземпляри використовуються в об'єктно-орієнтованому програмуванні для зберігання стану кожного об'єкта в класі. Вони також відомі як змінні члена або змінні поля. Змінні екземплярів оголошуються без використання статичного ключового слова на Java. Значення, що зберігаються в змінних екземплярів, є унікальними для кожного об'єкта (кожен об'єкт має окрему копію), а значення, що зберігаються в них, представляють стан цього об'єкта. Простір для змінної екземпляра виділяється в купі, коли цей об'єкт виділяється в купі. Тому змінні екземпляра зберігаються в пам'яті до тих пір, поки об'єкт живе. Наприклад, колір одного автомобіля не залежить від кольору іншого автомобіля. Таким чином, колір автомобільного об'єкта може зберігатися в змінній примірника. На практиці змінні екземпляри оголошуються всередині класів та зовнішніх методів. Зазвичай змінні екземплярів оголошуються приватними, так що до них можна отримати доступ лише в класі, де він оголошений.
Що таке локальна змінна?
Локальні змінні - це змінні, що мають локальну область, і вони оголошуються в конкретному кодовому блоці. Локальні змінні можна розглядати як змінні, які використовуються методом для зберігання свого тимчасового стану. Область локальної змінної визначається за допомогою розташування, в якому оголошена змінна, і спеціальні ключові слова не використовуються для цього. Як правило, доступ до локальної змінної обмежений у кодовому блоці, який він оголошує (тобто між дужками відкриття та закриття цього блоку коду). Локальні змінні зазвичай зберігаються в стеку викликів. Це дозволило б рекурсивним викликам функції зберігати власні копії локальних змінних, що зберігаються в окремих адресних просторах пам'яті. Коли метод закінчує його виконання, інформація про цей метод вискакує зі стека виклику, також знищуючи локальні змінні, які зберігалися.
Яка різниця між змінною інстанції та локальною змінною?
Змінні екземплярів оголошуються в класах поза методами, і вони зберігають стан об'єкта, тоді як локальні змінні оголошуються в кодових блоках, і вони використовуються для зберігання стану методу. Змінна екземпляра є живою, доки об’єкт, що містить цю змінну, живе, а локальна змінна - під час виконання цього методу / блоку коду. До змінної екземпляра (яка оголошується загальнодоступною) можна отримати доступ до класу, тоді як локальна змінна може бути доступна лише в блоці коду, який оголошується. Використання змінних екземплярів обмежується лише об'єктно-орієнтованим програмуванням, тоді як локальні змінні не мають такого обмеження.