В Java есть три типа переменных :
- Локальные переменные
- Переменные экземпляра
- Статические переменные
Локальные переменные и переменные экземпляра вместе называются нестатическими. Следовательно, можно также сказать, что переменные Java можно разделить на 2 категории:
- Статические переменные. Когда переменная объявляется как статическая, создается единственная копия переменной, которая используется всеми объектами на уровне класса. Статические переменные — это, по сути, глобальные переменные. Все экземпляры класса имеют одну и ту же статическую переменную.
Важные моменты для статических переменных: —
- Мы можем создавать статические переменные только на уровне класса. Смотри здесь
- Статический блок и статические переменные выполняются в порядке их присутствия в программе.
Ниже приведена Java-программа, демонстрирующая, что статический блок и статические переменные выполняются в порядке их присутствия в программе.
// Java-программа для демонстрации выполнения
// статических блоков и переменных
class
Test {
// статическая переменная
static
int
a = m1();
// статический блок
static
{
System.out.println(
"Inside static block"
);
}
// статический метод
static
int
m1()
{
System.out.println(
"from m1"
);
return
20
;
}
// статический метод (main !!)
public
static
void
main(String[] args)
{
System.out.println(
"Value of a : "
+ a);
System.out.println(
"from main"
);
}
}
Выход:
from m1 Inside static block Value of a : 20 from main
- Нестатическая переменная
- Локальные переменные : переменная, определенная в блоке, методе или конструкторе, называется локальной переменной.
- Эти переменные создаются, когда введенный блок или функция вызывается и уничтожается после выхода из блока или когда вызов возвращается из функции.
- Область действия этих переменных существует только в блоке, в котором объявлена переменная. то есть мы можем получить доступ к этим переменным только внутри этого блока.
- Инициализация локальной переменной является обязательной.
- Переменные экземпляра: переменные экземпляра являются нестатическими переменными и объявляются в классе вне любого метода, конструктора или блока.
- Поскольку переменные экземпляра объявлены в классе, эти переменные создаются при создании объекта класса и уничтожаются при его уничтожении.
- В отличие от локальных переменных, мы можем использовать спецификаторы доступа для переменных экземпляра. Если мы не указываем какой-либо спецификатор доступа, то будет использоваться спецификатор доступа по умолчанию.
- Инициализация переменной экземпляра не является обязательной. Значение по умолчанию 0
- Переменная экземпляра может быть доступна только путем создания объектов.
Пример :
// Java-программа для демонстрации
// нестатические переменные
class
GfG {
// нестатическая переменная
int
rk =
10
;
public
static
void
main(String[] args)
{
// Экземпляр создан, чтобы получить доступ
// нестатическая переменная.
Gfg f =
new
Gfg();
System.out.println(
"Non static variable"
+
" accessed using instance"
+
" of a class"
);
System.out.println(
"Non Static variable "
+ f.rk);
}
}
Выход:
Non static variable accessed using instance of a class. Non Static variable 10
- Локальные переменные : переменная, определенная в блоке, методе или конструкторе, называется локальной переменной.
Основные различия между статическими и нестатическими переменными:
Static variable | Non static variable |
---|---|
Static variables can be accessed using class name | Non static variables can be accessed using instance of a class |
Static variables can be accessed by static and non static methods | Non static variables cannot be accessed inside a static method. |
Static variables reduce the amount of memory used by a program. | Non static variables do not reduce the amount of memory used by a program |
Static variables are shared among all instances of a class. | Non static variables are specific to that instance of a class. |
Static variable is like a global variable and is available to all methods. | Non static variable is like a local variable and they can be accessed through only instance of a class. |
Рекомендуемые посты:
- Разница между статическими переменными и переменными регистра в C
- Статические и нестатические пустые конечные переменные в Java
- Статические переменные в Java с примерами
- Разница между статическим и нестатическим методом в Java
- Разрешены ли статические локальные переменные в Java?
- Присвоение значений статическим конечным переменным в Java
- Понимание static в public static void main в Java
- Разница между статическим и динамическим SQL
- Разница между статическими и общими библиотеками
- Разница между статическими и динамическими веб-страницами
- Разница между статическим и динамическим IP-адресом
- Разница между статической и динамической маршрутизацией
- Статические блоки в Java
- статическое ключевое слово в Java
- Инициализировать статическую карту с помощью Java 9 Map.of ()
0.00 (0%) 0 votes