Разница между локальной переменной Java, переменной экземпляра и переменной класса?
Содержание
Локальная переменная в Java обычно используется в методе, конструкторе или блоке и имеет только локальную область. Таким образом, вы можете использовать переменную только в пределах области блока. Другие методы в классе даже не знают, что переменная существует.
Пример
if(x > 100) { String testLocal = "some value"; }
В приведенном выше случае вы не можете использовать testLocal вне этого блока if.
Что такое переменная экземпляра?
Переменная экземпляра - это переменная, привязанная к самому объекту. Переменные экземпляра объявляются в классе, но вне метода. И каждый экземпляр этого класса (объекта) имеет свою собственную копию этой переменной. Изменения, внесенные в переменную, не отражены в других экземплярах этого класса. Переменные экземпляра доступны любому методу, связанному с экземпляром объекта. Как практический вопрос, это обычно дает его область действия в пределах некоторого экземпляра объекта класса. Когда объект распределяется в куче, в нем есть слот для каждого значения переменной экземпляра. Поэтому переменная экземпляра создается, когда объект создается и уничтожается при уничтожении объекта.
Пример
class TestClass{ public String StudentName; public int age; }
Правила для переменной экземпляра
- Переменные экземпляра могут использовать любой из четырех уровней доступа
- Они могут быть отмечены как final
- Они могут быть помечены как переходные
- Они не могут быть помечены как абстрактные
- Они не могут быть помечены как синхронизированные
- Они не могут быть помечены как родные
- Они не могут быть помечены static
Что такое переменная класса
Переменные класса объявляются с ключевым словом static, но вне метода. Таким образом, они также известны как статические переменные-члены, и только одна копия этой переменной делится со всеми экземплярами этого класса. Если изменения будут внесены в эту переменную, все другие экземпляры будут видеть эффект от изменений.
Пример
public class Product { public static int Barcode; }
Переменные класса хранятся в статической памяти. Редко использовать статические переменные, отличные от объявленных окончательных и используемые как государственные, так и частные.
Статическое ключевое слово в Java
Static - это модификатор без доступа. Это означает, что что-то (поле, метод, блок или вложенный класс) связано с типом, а не с каким-либо конкретным экземпляром типа. Подробнее о .....
Разница между статическими и нестационарными методами в Java
Статический метод принадлежит классу, а нестатический метод принадлежит объекту класса. Статические методы полезны, если у вас есть только один экземпляр, в котором вы собираетесь использовать этот метод, и вам не нужны несколько копий (объектов). Нестатические методы используются, если вы собираетесь использовать свой метод для создания нескольких копий. Подробнее о ....
Источник: http://net-informations.com/Java/cJava/local.htm