Переменная экземпляра против локальной переменной
Переменная экземпляра - это тип переменной, который присутствует в объектно-ориентированном программировании. Это переменная, которая определена в классе, и каждый объект этого класса содержит отдельную копию этой переменной. С другой стороны, использование локальных переменных не ограничивается объектно-ориентированными языками программирования. Это переменная, которая может оцениваться только в пределах конкретного блока кода (например, функции, цикла цикла и т. Д.), В котором она определена. По этой причине локальные переменные имеют локальную область видимости..
Что такое переменная экземпляра?
Переменные экземпляра используются в объектно-ориентированном программировании для хранения состояния каждого объекта в классе. Они также известны как переменные-члены или переменные поля. Переменные экземпляра объявляются без использования ключевого слова static в Java. Значения, хранящиеся в переменных экземпляра, являются уникальными для каждого объекта (каждый объект имеет отдельную копию), а значения, хранящиеся в них, представляют состояние этого объекта. Пространство для переменной экземпляра выделяется в куче, когда этот объект выделяется в куче. Следовательно, переменные экземпляра хранятся в памяти до тех пор, пока объект является активным. Например, цвет одного автомобиля не зависит от цвета другого автомобиля. Таким образом, цвет объекта автомобиля может быть сохранен в переменной экземпляра. На практике переменные экземпляра объявляются внутри классов и внешних методов. Обычно переменные экземпляра объявляются как закрытые, так что к ним можно получить доступ только внутри объявленного им класса..
Что такое локальная переменная?
Локальные переменные - это переменные, имеющие локальную область видимости, и они объявлены в определенном блоке кода. Локальные переменные можно рассматривать как переменные, которые используются методом для хранения своего временного состояния. Область действия локальной переменной определяется с использованием местоположения, в котором переменная объявлена, и специальные ключевые слова для этой цели не используются. Как правило, доступ к локальной переменной ограничен в пределах блока кода, в котором она объявлена (то есть между открывающей и закрывающей скобками этого блока кода). Локальные переменные обычно хранятся в стеке вызовов. Это позволило бы рекурсивным вызовам функций сохранять собственные копии локальных переменных для хранения в отдельных адресных пространствах памяти. Когда метод заканчивает свое выполнение, информация об этом методе выталкивается из стека вызовов, также уничтожая локальные переменные, которые были сохранены.
В чем разница между переменной экземпляра и локальной переменной?
Переменные экземпляра объявляются внутри классов вне методов, и они хранят состояние объекта, в то время как локальные переменные объявляются в блоках кода, и они используются для хранения состояния метода. Переменная экземпляра является действующей до тех пор, пока объект, содержащий эту переменную, является действующим, в то время как локальная переменная является действующей во время выполнения этого блока метода / кода. К переменной экземпляра (которая объявлена общедоступной) можно получить доступ внутри класса, тогда как локальная переменная может быть доступна только в объявленном блоке кода. Использование переменных экземпляра ограничено только объектно-ориентированным программированием, в то время как локальные переменные не имеют такого ограничения..