У цій статті наведено основні способи застосування ключового слова final у програмуванні Java. Короткі, чіткі описи ситуації застосування допоможуть швидко засвоїти матеріал. Ключове слово final має різні інтерпретації залежно від цього, де програми воно використовується. Але суть цього слова одна — заборона зміну . По суті, застосовуючи це слово до однієї з сутності мови Java: змінної, об'єкта, методу чи класу, — ми робимо з неї константу, стабільну і незмінну величину, як зачіска у співака Йосипа Кобзона... Нагадаю коротке визначення константи. Константа - постійна величина (скалярна або векторна) у математиці, фізиці, хімії. Математична константа - величина, значення якої не змінюється; у цьому вона протилежна змінній. Розглянемо 4 випадки, коли можна застосувати слово final .
1. Створення константи примітивного типу даних.
Тут не можна змінити значення MY_CONST . Таким чином, якщо написати слово final біля примітивної змінної, вона є константою.public class MyClass{
public final int MY_CONST = 13;
}
2. Створення константи типу посилання.
Цей код не буде викликати помилки, але тільки до того часу, поки не привласнити нове значення змінної s1 . Тобто слово final для типів посилань забороняє зміну посилання, а не об'єкта, на який вказує посилання. Також варто зазначити, що привласнення допустиме в будь-якому місці програми, але лише один раз.public class MyClass2{
public final String s1;
public MyClass2() {
s1 = new String();
}
}
3. Заборона на перевизначення методу у класі-спадкоємці
Слово final біля методу забороняє перевизначення цього у класах-спадкоємцях.public class Example{
public final void hello() {
System.out.println(“Hello my people!”);
}
}
Тобто, якщо створити клас-спадкоємець від Example і написати в ньому наступний код, буде помилка:
public class ExtendedExample extends Example{
public void hello() {
System.out.println("Extended hello everyone!!!");
}
}
4. Заборона створення класу спадкоємця
Фінальний клас — це клас, який може бути суперкласом, тобто забороняється писати йому спадкоємців.public final class MyClass3 {
}
Автор: Ірина Волгіна
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ