Ключевая разница - статический и окончательный в Java
Каждый язык программирования имеет определенный синтаксис. Программист должен следовать этому синтаксису при написании программ. Ключевые слова языков программирования имеют определенные значения в зависимости от задач. Они предоставляются языком программирования и не могут использоваться для определяемых пользователем переменных, методов, классов и т. д. Статические и окончательные - это два ключевых слова в Java. В этой статье обсуждается разница между static и final в Java. Ключевое различие между static и final в Java заключается в том, что static используется для определения члена класса, который может использоваться независимо от любого объекта класса, тогда как final используется для объявления постоянной переменной или метода, который не может быть переопределен, или класса, который не может быть унаследовано.
Что такое статика в Java?
Класс состоит из элементов данных (атрибутов) и методов. Чтобы вызвать методы, должен быть объект этого конкретного класса. Когда метод объявлен как статический, нет необходимости создавать объект для вызова этого метода. Метод можно вызвать, используя имя класса. См. приведенную ниже программу.
Рисунок 01: Программа на Java со статическими переменными и статическим методом
Согласно приведенной выше программе, класс A содержит числовую переменную и метод отображения. Оба являются статическими членами. Поэтому нет необходимости создавать объект для доступа к числовой переменной и методу отображения. Программист может напрямую написать имя класса, чтобы вывести число и вызвать метод display. Таким образом, нет необходимости создавать экземпляр объекта. Если числовая переменная и метод отображения нестатические, то должен быть объект типа A.
Рисунок 02: Использование статического блока
Приведенная выше программа содержит статический блок и основной метод. Статический блок вызывается при загрузке класса. Следовательно, инструкция в статическом блоке выполняется раньше инструкции в основном блоке. Если статических блоков много, они будут выполняться последовательно.
Что такое final в Java?
В программе могут быть переменные различных типов. Если есть переменная int x=1; позже в программе это значение переменной может быть изменено на какое-либо другое значение. Переменная, которая объявлена как final и инициализирована значением, не может быть изменена позже в программе.
Рисунок 03: Программа с final Variable и Inheritance
Согласно приведенной выше программе, x является конечной переменной. Ему присваивается значение 5. Ему нельзя изменить какое-либо другое значение, поскольку оно объявлено окончательным. Java поддерживает объектно-ориентированное программирование (ООП). Одним из столпов ООП является полиморфизм. Один тип полиморфизма переопределяет. Класс A имеет метод отображения. Класс B расширяет класс A и имеет собственный метод отображения. При создании объекта типа B и вызове метода display в качестве вывода будет напечатано «B». Метод отображения класса A переопределяется методом отображения класса B.
Если программист хочет избежать переопределения метода, он может использовать ключевое слово final для этого метода. Если метод отображения в классе A является окончательным, метод отображения в классе B выдаст ошибку, поскольку этот метод не может быть переопределен.
Рисунок 04: ключевое слово final в методе
Еще одним столпом ООП является наследование. Это помогает повторно использовать уже существующий код. Новый класс может расширяться из существующего класса и использовать элементы данных и методы существующего класса. Если требуется прекратить наследование класса, программист может использовать ключевое слово final. См. приведенную ниже программу.
Рисунок 05: последнее ключевое слово в классе
Согласно приведенной выше программе, класс A объявляется окончательным. Когда класс B расширяет A, это выдает ошибку, потому что класс A объявлен как final. Он не может быть унаследован другими классами.
В чем сходство между static и final в Java?
И static, и final являются ключевыми словами в Java
В чем разница между static и final в Java?
static vs final в Java |
|
Статическое ключевое слово означает, что к переменной-члену или методу можно получить доступ, не требуя создания экземпляра класса, которому он принадлежит. | Ключевое слово final обозначает сущность, которая может быть назначена только один раз. |
Переменные | |
Статические переменные могут быть повторно инициализированы. | Последние переменные не могут быть повторно инициализированы. |
Методы | |
Может вызываться другими статическими методами и обращаться только к статическим членам класса. | Последние методы нельзя переопределить. |
Класс | |
Невозможно создать объект статического класса. Он содержит только статические члены. | Конечный класс не может быть унаследован другими классами. |
Блок | |
Ключевое слово static может использоваться в блоке. | Ключевое слово final не используется с блоком. |
Резюме - статика и финал в Java
В этой статье обсуждались два ключевых слова в Java, такие как static и final. Разница между static и final в Java заключается в том, что static используется для определения члена класса, который может использоваться независимо от любого объекта класса, а final используется для объявления постоянной переменной или метода, который не может быть переопределен, или класса, который не может быть переопределен. быть унаследованным.