Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Ключевое слово final в Java: переменные, методы и классы

Ключевое слово final в Java

Узнайте, как ключевое слово final в Java защищает константы, предотвращает переопределение методов и блокирует наследование классов, с наглядными примерами.

В Java ключевое слово final сигнализирует, что сущность — будь то переменная, метод или класс — не может быть изменена после первоначального определения. Этот неизменяемый контракт обеспечивается на этапе компиляции, давая разработчикам гарантии о поведении программы.


1. Final-переменные

Когда вы объявляете переменную как final, ее значение блокируется после первого присваивания. Это стандартный способ определения констант в Java.

class Main { public static void main(String[] args) { // Объявление final-переменной final int AGE = 32; // Следующая строка вызовет ошибку компиляции // AGE = 45; System.out.println("Age: " + AGE); } } 

Компилятор откажется компилировать код, пытающийся переназначить AGE, выдав ошибку вроде:

cannot assign a value to final variable AGE AGE = 45; ^ 
Совет: По соглашению имена констант пишутся заглавными буквами с подчеркиваниями (например, MAX_SIZE) для обозначения их неизменности.

2. Final-методы

Final-методы являются частью механизма безопасности наследования в Java. Когда метод помечен final, ни один подкласс не может его переопределить, сохраняя исходную реализацию.

class FinalDemo { // Final-метод public final void display() { System.out.println("This is a final method."); } } class Main extends FinalDemo { // Попытка переопределения — ошибка компиляции public final void display() { System.out.println("The final method is overridden."); } public static void main(String[] args) { Main obj = new Main(); obj.display(); } } 

Попытка переопределить метод display() вызовет ошибку:

display() in Main cannot override display() in FinalDemo public final void display() { ^ overridden method is final 

3. Final-классы

final класс не может быть подклассом. Это часто используется для критически важных с точки зрения безопасности или неизменяемых типов, гарантируя, что поведение класса остается неизменным.

// Определение final-класса final class FinalClass { public void display() { System.out.println("This is a final class."); } } // Попытка расширения final-класса class Main extends FinalClass { public void display() { System.out.println("The final class is overridden."); } public static void main(String[] args) { Main obj = new Main(); obj.display(); } } 

Компилятор отвергнет это наследование с ошибкой:

cannot inherit from final FinalClass class Main extends FinalClass { ^ 

java

  1. Ключевое слово static в C#: статические переменные, методы и классы
  2. Оператор instanceof в Java: полное руководство с примерами
  3. Наследование в Java: концепции, типы и практические примеры
  4. Статические вложенные классы в Java: использование, отличия и примеры
  5. Анонимные внутренние классы в Java: определение, синтаксис и практические примеры
  6. Паттерн Singleton в Java: как реализовать и безопасно использовать
  7. Рефлексия в Java: инспекция классов, методов и полей во время выполнения
  8. Освоение Java ObjectOutputStream: сериализация, методы и практические примеры
  9. Освоение Java Generics: создание переиспользуемого, типобезопасного кода
  10. Мастерство файловых операций в Java с java.io: создание, чтение, запись и удаление