Статический означает «глобальный» или «статический», который используется для изменения переменных членов и методов членов, а также может сформировать статические статические кодовые блоки, но нет концепции глобальных переменных на языке Java.
Переменные члена и методы членов, которые изменяются Static, не зависят от любого объекта класса. То есть это не зависит от экземпляров, специфичных для класса и разделяется всеми экземплярами класса.
До тех пор, пока этот класс загружен, виртуальная машина Java может найти их в области метода области данных времени выполнения в соответствии с именем класса. Следовательно, к статическому объекту можно получить доступ до того, как будет создан какой -либо из его объектов без ссылки на любой объект.
Статические переменные члена и методы членов, модифицированные общественностью, являются по существу глобальные переменные и глобальные методы.
Статические переменные могут быть изменены с частными, указывая на то, что эта переменная может использоваться в статическом кодовом блоке класса или в других статических методах класса (конечно, ее также можно использовать в нестатических методах члена - бессмысленность ), но не может использоваться в других классах. Важно напрямую ссылаться на имя класса в классе. На самом деле, вы должны понимать, что частное является ограниченным разрешением доступа, и статические означает, что его можно использовать без экземпляров, что будет намного проще понимать. Эффект предыдущего статика с другими ключевыми словами доступа также похож.
Переменные члена и методы участников, модифицированные Static, обычно называют статическими переменными и статическими методами.
Имя класса.
Имя класса
Статический кодовый блок используется для представления статического кодового блока.
1. Статические переменные
Переменные члена класса могут быть классифицированы в соответствии с тем, являются ли они статически изменены: одна является переменной, которая является статической или классовой переменной;
Разница между ними состоит в:
Для статических переменных есть только одна копия в памяти (сохранение памяти), JVM выделяет только память Конечно, его также можно использовать через объекты.
Например, переменные, если экземпляр не создан, память будет выделена на переменную экземпляра один раз.
Следовательно, статические переменные обычно используются, когда необходимы следующие две функции:
При обмене значениями между объектами при доступе к переменным
2. Статический метод
Статические методы могут быть вызваны непосредственно через имена классов, и любой экземпляр также может быть вызван.
Следовательно, ключевые слова, которые это и супер не могут быть использованы в статических методах, а переменные экземпляра и методы экземпляра класса, принадлежащего непосредственно, не могут быть непосредственно доступны (то есть переменные члена и методы члена без статического) и могут только получить доступ к статике переменные члена и методы члена класса, принадлежащего.
Потому что участники экземпляра связаны с конкретными объектами! Это требует понимания и понимания истины, а не памяти! ! !
Поскольку статический метод не зависит от какого -либо экземпляра, необходимо реализовать статический метод, а не абстрактный абстрактный.
Например, чтобы облегчить вызов методов, все методы в классе математики в Java API являются статическими, а статические методы внутри общих классов также удобны для других классов для названия этого метода.
Статические методы-это специальный класс методов внутри класса.
3. Статический кодовый блок
Статические кодовые блоки также называют статическими блоками кода. Выполняется, когда JVM загружает класс. Например:
Общедоступный тест. Println (TB); ; System.out.println (a);
Результаты работы:
3
Ххаххахах
1000
4
5
Используя статические кодовые блоки, вы можете присвоить значения некоторым статическим переменным. пример.
4. Что статическое и окончательное означает вместе?
Статический финал используется для изменения переменных членов и методов членов, которые можно просто понимать как «глобальные константы»!
Для переменных представление не может быть изменено после того, как значение будет дано и может быть доступно под именем класса.
Для методов представление не переопределено и может быть доступно непосредственно через имя класса.
Иногда вы хотите определить члена класса, чтобы он использовал полностью независимо от любого объекта этого класса. Как правило, к члену класса необходимо получить доступ через объект своего класса, но может быть создан участник, который может использоваться им без необходимости ссылаться на конкретный экземпляр. Этот участник может быть создан путем предшествующего декларации участника. Если участник объявлен статическим, к нему можно получить доступ, прежде чем будет создан какой -либо объект его класса без необходимости ссылаться на какой -либо объект. Вы можете объявить как методы, так и переменные статичными. Наиболее распространенным примером статического элемента является Main (). Поскольку main () должен быть вызван, когда программа начинает выполнять, она объявлена статичной.
Переменная, объявленная статической, является по сути глобальной переменной. Когда объект объявлен, не генерируется копия статической переменной, но все переменные экземпляра класса имеют одну и ту же статическую переменную. Методы, объявленные статичными, имеют следующие ограничения:
Они могут вызывать только другие статические методы.
Они имеют доступ только к статическим данным.
Они не могут ссылаться на это или супер в каком -либо смысле (ключевое слово супер связано с наследством, описанное в следующей главе).
Если вам нужно инициализировать статическую переменную путем расчета, вы можете объявить статический блок, который выполняется только один раз при загрузке класса. В следующем примере показан класс со статическим методом, некоторыми статическими переменными и блоком статической инициализации:
// демонстрируют статические переменные, методы и класс. println ("a =" + a); void main (string args []) {meth (42);
Как только пользовательский класс загружен, все статические операторы выполняются. Сначала A установлен на 3, затем статический блок выполняется (печать сообщения), и, наконец, B инициализируется до*4 или 12. Затем вызовите main (), main () вызовы Meth () и передайте значение 42 до x. Операторы 3 println () относятся к двум статическим переменным A и B, а также локальной переменной x.
ПРИМЕЧАНИЕ. Незаконно ссылаться на любую переменную экземпляра статическим методом.
Вот результат программы:
Статический блок инициализирован.
x = 42
a = 3
b = 12
Вне классов, которые их определяют, статические методы и переменные могут использоваться независимо от любого объекта. Таким образом, вам просто нужно добавить оператора DOT после имени класса. Например, если вы хотите вызвать статический метод извне класса, вы можете использовать следующий общий формат:
classname.method ()
Здесь ClassName - это имя класса, где определяется статический метод. Как вы можете видеть, этот формат аналогичен формату вызова нестатических методов с помощью эталонных объектов. Статическая переменная можно получить в одном и том же формате - оператор Dot Class Dot. Это управляющая версия того, как Java реализует глобальные функции и глобальные переменные.
Вот пример. В main (), статический метод Callme () и статическая переменная b доступны за пределами их класса.
класс StaticDemo {static int a = 42; ) {Staticdemo.callme ();
Вот результат программы:
a = 42
b = 99
Статический элемент не может быть доступен в результате экземпляров, созданных классом, в котором они находятся.
Если член без статической модификации является членом объекта, он принадлежит каждому объекту.
Участник со статической модификацией - это член класса, который может быть вызван непосредственно классом и разделяется всеми объектами.
В этой статье вы понимаете роль Static в Java?