В этой статье в основном анализируются общие ключевые слова Java Final, static, super, и это подробно, чтобы облегчить читателям поиск. Подробности следующие:
1. финал
1) Изменить класс:
Указывает, что этот класс не может быть унаследован.
2) Изменить метод (метод)
Указывает, что этот метод нельзя переопределить (@override)
3) Изменить переменную (переменную)
Указывает, что значение этой переменной не может быть изменено позже. Часто используется для изменения неизменяемых констант.
Примечание: окончательный буквально означает «окончательный» и «неизменяемый». Запоминать его удобнее, комбинируя значения.
2. статический (обычно используются второй и третий методы)
1) Изменить класс:
(Нечасто используется) может использоваться только для изменения внутренних классов. Обычные классы не могут объявляться таким образом.
2) Изменить метод (метод)
Статические методы принадлежат классу (разделяются между объектами), а не определенному объекту. Нет необходимости создавать объект, вы можете использовать имя класса для вызова этого метода.
(При выполнении программы байт-код класса загружается в память. Когда класс не создает объект, переменной класса выделяется память, а переменной экземпляра выделяется пространство памяти только при создании определенного объекта. )
3) Изменить переменную (переменную)
Как и в пункте 2), переменные являются общими на уровне класса, и нет необходимости создавать объекты, но изменение значения переменной является целочисленным. То есть, если объект A изменяет значение статической переменной, действуя. над ней, то с ней будет работать объект B — это измененная статическая переменная.
Примечание. Блоки кода, модифицированные с помощью static, называются блоками статического кода. Статические блоки кода выполняются первыми, когда JVM загружает класс. Независимо от того, где они расположены, они выполняются первыми, а затем выполняются обычные блоки кода. Может быть несколько блоков статического кода, которые будут выполняться JVM в порядке появления. Каждый блок кода будет выполняться только один раз.
Ключевые слова this и super не могут использоваться в статических методах.
3. супер: (имеется в виду ссылка на родительский класс)
1) Относится к классу (родительский класс, также называемый суперклассом):
Вызвать конструктор родительского класса через super(параметр 1, параметр 2,..., параметр n);
2) Относится к методу (методу)
super.Method(параметр 1, параметр 2,..., параметр n) вызывает переопределенный метод родительского класса;
3) Относящиеся к переменной (переменной)
super.variable, вызвать переменную родительского класса
Примечание: super необходимо использовать в первой строке конструктора подкласса;
Если родительский класс не имеет конструктора без параметров, подкласс должен использовать super для явного вызова конструктора родительского класса. Super ссылается на ссылку на родительский класс.
4. это: (ссылка на текущий объект)
1) Связанные с классом:
this(параметр 1, параметр 2,..., параметр n), это обычный конструктор. Только конструктор (other) может вызывать конструктор (this), а обычные функции не могут вызывать конструктор.
2) Связанные с методом:
Вызов метода текущего объекта
3) Переменные (переменные), связанные:
Вызвать переменную текущего объекта
Примечание: this(); и super(); явно вызывать конструктор можно только в первой строке конструкции;
this.method..();super.method..(); можно разместить где угодно и использовать как обычный метод;
Существует большая разница между конструкторами и методами, использующими это ключевое слово. Ссылка на метод this указывает на экземпляр класса, в котором выполняется метод. Статические методы не могут использовать ключевое слово this, поскольку статические методы не принадлежат экземплярам класса, поэтому им не на что указывать. Конструктор this указывает на другой конструктор в том же классе с другим списком параметров.