Ключова разлика – финал срещу окончателно срещу финализиране в Java
Final, finally и finalize са общи термини, използвани в програмирането на Java. Финалът е ключова дума. Може да се използва за променливи, методи или класове. Променливите, декларирани като final, трябва да се инициализират само веднъж. Те не могат да бъдат променени. Тъй като Java е език, който поддържа обектно-ориентирано програмиране, той позволява създаване на класове от съществуващи класове, за да се подобри повторното използване на кода. Понякога може да се наложи да избягвате използването на съществуващите класове. За това може да се използва final. В програмирането може да има грешки и е важно да се справите с тях, за да изпълните програмата правилно. Finalize е метод, извикан от събирача на отпадъци. Така че всички тези термини имат съответно различни значения. Final е ключова дума, която предотвратява промяната на променливи, избягва отмяната на метода и избягва разширяването на класове. Finally е блок при обработка на изключения, който ще се изпълни независимо дали е хвърлено изключение или не. Finalize е метод, извикван от събирача на отпадъци, преди да унищожи обекта напълно. Това е ключовата разлика окончателно окончателно и финализиране в Java.
Какво е окончателното в Java?
Final е ключова дума в Java. Тъй като Java поддържа обектно ориентирано програмиране, подкласовете могат да използват променливите и методите на вече съществуващ клас. Вече съществуващият клас е суперклас, докато новият клас е подклас. Ако програмистът иска да предотврати достъпа на променливата от други класове, той може да декларира променливата като „final“. Например, приемете, че има променлива като p. Той се декларира като окончателен и инициализира стойността 10.напр. final int p=10. Ако стойността p се промени отново на 20, това ще доведе до грешка по време на компилиране. Ключовата дума final предотвратява промяната на стойността на променливата.
Клас може да използва метод, който вече е в съществуващ клас. Да приемем, че има клас, наречен B, който има метод display(). Новият клас е C и разширява клас B. Ако клас C също има метод, наречен display(), тогава оригиналният метод display() от клас B се отменя. Ако програмистът иска да избегне отмяна на метода, тогава той може да използва ключовата дума finally. напр. final void display(){ }. Правенето на метод окончателен гарантира, че функционалността на метода никога няма да бъде променена.
Фигура 01: финал, окончателно и финализиране
Също така е възможно да се използва крайната ключова дума за клас. Новият клас не може да наследява променливи и методи на финален клас. Това е полезно за повишаване на сигурността. Тъй като класът е възпрепятстван от използване от подкласовете, данните са защитени.
Какво най-накрая има в Java?
В програмирането може да има грешки. Грешките могат да причинят неправилни резултати или да прекратят изпълнението на програма. Важно е да използвате някакъв механизъм, за да предотвратите тези неочаквани резултати. Грешките могат да бъдат два вида. Те са грешки при компилиране и грешки при изпълнение. Грешките по време на компилиране възникват поради синтактични грешки. Някои често срещани грешки по време на компилиране са липса на точка и запетая, липсващи фигурни скоби, грешно изписване на идентификатори, ключови думи и недекларирани променливи. Компилаторът няма да създаде.class файла, докато тези грешки не бъдат коригирани.
Понякога може да има програми, които се компилират правилно, но дават грешен резултат. Те се наричат грешки по време на изпълнение. Някои често срещани грешки по време на изпълнение са гмуркане на цяло число с нула и достъп до елемент, който е извън границите на масив. Тези грешки няма да причинят грешка по време на компилиране, но изходът е неправилен. Изключение е състояние, причинено от грешка по време на изпълнение на програмата.
Когато има грешка по време на изпълнение, Java създава обект за изключение и го хвърля. Ако обектът на изключение не бъде уловен правилно, той ще покаже съобщение за грешка и ще прекрати програмата. Ако програмистът иска да продължи изпълнението на програмата с останалата част от кода, той трябва да прихване обекта за изключение и да изведе необходимото съобщение за коригиращо действие. Този процес е известен като обработка на изключения.
В Java, try се използва за кода, който е вероятно да причини грешка и да хвърли изключение. Улавянето се използва за обработка на изключението, хвърлено от блока try. Може да има множество изявления за улов. Инструкциите finally могат да се използват за обработка на изключение, което не е уловено от нито един от предишните оператори catch. Блокът finally ще се изпълни независимо дали е хвърлено изключение или не. Вижте дадения пример.
int p=10, q=5, r=5;
int отговор;
опитайте{
отговор=p / (q – r);
}
catch (ArithmeticException e){
System.out.println(“Делено на нула”);
}
накрая{
System.out.println(“Последният блок е изпълнен”);
}
Съгласно горния пример, стойността p се дели на нула и това ще предизвика изключение. Следователно той се улавя от оператора catch. Той ще отпечата съобщението, разделено на нула. Блокът finally ще се изпълни независимо дали е възникнало изключение или не. След съобщението Разделено на нула ще се покаже съобщението в блока finally. Следователно finally е блок, използван при обработка на изключения.
Какво е finalize в Java?
В ООП обектите се създават с помощта на класове. Методът на конструктора може да инициализира обект, когато е деклариран. Процесът е известен като инициализация. Java също има концепция, наречена финализиране. Средата за изпълнение на Java е автоматичен събирач на отпадъци. Той автоматично освобождава ресурсите на паметта, използвани от обектите. Събирачът на отпадъци извиква този метод преди да унищожи обекта.
Някои обекти може да съдържат необектни ресурси. Един пример е файлов дескриптор. В тези ситуации събирачът на отпадъци извиква метода за финализиране. напр. финализиране(). Този метод извършва обработка на почистване точно преди обектът да бъде събран.
Каква е приликата между finally finally и finalize в Java?
Всички final, finally и finalize в Java се използват в програмирането на Java
Каква е разликата между final finally и finalize в Java?
финал срещу окончателно срещу финализиране |
|
финал | Final е ключова дума в Java, която предотвратява промяната на променливи, избягва замяната на метода и избягва разширяването на класове. |
накрая | Накрая е блок в обработката на изключения в Java, който ще се изпълни независимо дали е хвърлено изключение или не. |
финализиране | Finalize е метод в Java, извикван от събирача на отпадъци, преди да унищожи обекта напълно. |
Приложимост | |
финал | Последният е приложим за променливи, методи и класове. |
накрая | Окончателното е приложимо с блокове за опит и улавяне. |
финализиране | Финализирането е приложимо за обекти. |
Резюме – финал срещу окончателно срещу финализиране в Java
Final, finally и finalize са общи термини, използвани в Java програмирането. Думите им изглеждат еднакви, но имат разлика. Final е ключова дума, която предотвратява промяната на променливи, избягва замяната на метода и избягва разширяването на класове. Finally е блок при обработка на изключения, който ще се изпълни независимо дали е хвърлено изключение или не. Finalize е метод, извикван от събирача на отпадъци, преди да унищожи обекта напълно. Това е разликата между final, finally и finalize в Java програмирането.
Изтеглете PDF файла на final vs finally vs finalize в Java
Можете да изтеглите PDF версията на тази статия и да я използвате за офлайн цели според бележката за цитиране. Моля, изтеглете PDF версията тук: Разлика между finally finally и finalize в Java