הסופי, הסופי והסופי הם מילות מפתח ב-Java המשמשות לטיפול בחריגים. לכל אחת ממילות המפתח הללו יש פונקציונליות שונה. ההבדל הבסיסי בין סופי, סופית וסופי הוא שה סופי הוא משנה גישה, סוף כל סוף הוא הבלוק ב-Exception Handling and לְסַכֵּם היא השיטה של מחלקת אובייקט.
יחד עם זה, ישנם הבדלים רבים בין סופי, סופית וסופי. רשימה של הבדלים בין סופי, סופית וסופי ניתנת להלן:
מר לא. | מַפְתֵחַ | סופי | סוף כל סוף | לְסַכֵּם |
---|---|---|---|---|
1. | הַגדָרָה | final הוא מילת המפתח ושינוי הגישה המשמש להחלת הגבלות על מחלקה, שיטה או משתנה. | לבסוף הוא החסימה ב-Java Exception Handling כדי להפעיל את הקוד החשוב בין אם החריג מתרחש או לא. | finalize היא השיטה ב-Java המשמשת לביצוע עיבוד ניקוי רגע לפני איסוף האשפה של האובייקט. |
2. | ישים ל | מילת מפתח סופית משמשת עם המחלקות, השיטות והמשתנים. | לבסוף בלוק תמיד קשור לחסום הנסיון והתפס בטיפול בחריגים. | נעשה שימוש בשיטת finalize() עם האובייקטים. |
3. | פונקציונליות | (1) לאחר ההכרזה, המשתנה הסופי הופך קבוע ולא ניתן לשנותו. (2) לא ניתן לעקוף את השיטה הסופית על ידי תת מחלקה. (3) שיעור סופי לא ניתן בירושה. | (1) לבסוף בלוק מריץ את הקוד החשוב גם אם מתרחש חריג או לא. (2) לבסוף בלוק מנקה את כל המשאבים המשמשים ב- try block | שיטת finalize מבצעת את פעולות הניקוי ביחס לאובייקט לפני השמדתו. |
4. | ביצוע | שיטה סופית מבוצעת רק כאשר אנו קוראים לה. | לבסוף הבלוק מבוצע ברגע שחסום ה-Try-catch מבוצע. הביצוע שלו אינו תלוי בחריג. | שיטת finalize מבוצעת רגע לפני שהאובייקט מושמד. |
דוגמה סופית של Java
הבה נבחן את הדוגמה הבאה שבה אנו מצהירים על גיל המשתנה הסופי. לאחר ההכרזה לא ניתן לשנות אותו.
FinalExampleTest.java
public class FinalExampleTest { //declaring final variable final int age = 18; void display() { // reassigning value to age variable // gives compile time error age = 55; } public static void main(String[] args) { FinalExampleTest obj = new FinalExampleTest(); // gives compile time error obj.display(); } }
תְפוּקָה:
בדוגמה לעיל, הכרזנו על משתנה סופי. באופן דומה, אנו יכולים להכריז על השיטות והמחלקות סופיות באמצעות מילת המפתח הסופית.
סוף סוף Java דוגמה
בוא נראה את הדוגמה למטה שבה קוד Java זורק חריג ובלוק ה-catch מטפל בחריג הזה. מאוחר יותר החסימה הסופית מבוצעת לאחר הבלוק של ה-Try-catch. יתר על כן, גם שאר הקוד מבוצע כרגיל.
FinallyExample.java
public class FinallyExample { public static void main(String args[]){ try { System.out.println('Inside try block'); // below code throws divide by zero exception int data=25/0; System.out.println(data); } // handles the Arithmetic Exception / Divide by zero exception catch (ArithmeticException e){ System.out.println('Exception handled'); System.out.println(e); } // executes regardless of exception occurred or not finally { System.out.println('finally block is always executed'); } System.out.println('rest of the code...'); } }
תְפוּקָה:
Java finalize דוגמה
FinalizeExample.java
public class FinalizeExample { public static void main(String[] args) { FinalizeExample obj = new FinalizeExample(); // printing the hashcode System.out.println('Hashcode is: ' + obj.hashCode()); obj = null; // calling the garbage collector using gc() System.gc(); System.out.println('End of the garbage collection'); } // defining the finalize method protected void finalize() { System.out.println('Called the finalize() method'); } }
תְפוּקָה:
mvc עם java