ההבדל בין Final, Final ו- Final ב- Java

מְחַבֵּר: Laura McKinney
תאריך הבריאה: 2 אַפּרִיל 2021
תאריך עדכון: 5 מאי 2024
Anonim
הסבר להבדל בין function ל-method ב-java
וִידֵאוֹ: הסבר להבדל בין function ל-method ב-java

תוֹכֶן


המילים 'סופי, סוף סוף וסופיות' טמונות בתוך הג'אווה. לכל אחד מהם תפקוד שונה. ההבדל הבסיסי בין סופי, סוף סוף וסיום הוא זה סופי הוא משנה גישה, סוף סוף הוא חסימה ו לסיים היא שיטה של ​​מעמד אובייקטים. ישנם כמה הבדלים אחרים בין סופי, סוף סוף וסופי אשר נדונים בתרשים ההשוואה.

  1. טבלת השוואה
  2. הגדרה
  3. הבדלים עיקריים
  4. סיכום

טבלת השוואה

בסיס להשוואהסופיסוף סוףסיים
בסיסיFinal הוא "מילת מפתח" ו- "שינוי גישה" ב- Java.סוף סוף הוא "חסימה" בג'אווה.סיום הוא "שיטה" ב- Java.
ישיםFinal הוא מילת מפתח החלה על שיעורים, משתנים ושיטות.סוף סוף הוא חסימה שתמיד קשורה לחסימה של ניסיון לתפוס.finalize () היא שיטה החלה על אובייקטים.
עובד(1) המשתנה הסופי הופך להיות קבוע, ולא ניתן להקצות אותו מחדש.
(2) שיטת הסיום לא יכולה להיות מוחלטת על ידי ילדי הכיתה.
(3) לא ניתן להאריך את מחזור הגמר.
חסימת "סוף סוף", נקה את המשאבים המשמשים בחסימה "נסה".שיטת סיום מבצעת ניקוי פעילויות הקשורות לאובייקט לפני השמדתו.
ביצועהשיטה הסופית מבוצעת בשיחתה.חסימת "סוף סוף" מבוצעת ממש לאחר ביצוע בלוק ה- "try-catch".finalize () השיטה מבוצעת רגע לפני השמדת האובייקט.


הגדרת הגמר

"סופי" היא מילת מפתח ב- Java. זהו שינוי גישה. מילת המפתח "הסופית" חלה על הכיתות, השיטות והמשתנים. בואו נראה איך זה עובד עם כל אחד מהם.

משתנה סופי

  • כאשר מוחלת מילת מפתח סופית על המשתנה, לא ניתן לשנות אותה עוד יותר.
  • יש לאתחל משתנה סופי כאשר הוא מוכרז.
  • במוסכמת קידוד נפוצה מוצהרים משתנים סופיים ב- UPPERCASE.
  • המשתנה הסופי אינו תופס זיכרון על בסיס מופע.

סופי int FILE_OPEN = 2;

שיטות סופיות

  • כאשר שיטה בכיתה מוכרזת כסופית, לא ניתן יהיה לבטל אותה על ידי תת המשנה שלה.
  • שיטות קטנות המוצהרות כסופיות יכולות להיות "אינליין" על ידי המהדר אשר יפחית את התקורה של שיחות פונקציות ויגדילו את שיפורי הביצועים.
  • שיטות דרושות קריאה, נפתרות באופן דינמי, אך כאשר שיטה מוצהרת כסופית, לא ניתן יהיה לבטל אותה. מכאן שניתן לפתור את קריאת הפונקציה בזמן הקומפילציה.

class A {final void meth () {System.out.ln ("זו שיטה סופית."); }} class B מרחיב את A {void meth () {// קלאס B לא יכול לרשת את השיטה של ​​מחלקה A. System.out.ln ("לא מבטל"); }}

מחזור גמר

  • כאשר הכריזה על הכיתה כסופית, היא לא יכולה להיות בירושה על ידי אף תת-קבוצה.
  • הכרזת כיתה כסופית תכריז אוטומטית על כל שיטותיה כסופיות.
  • אינך יכול להכריז על כיתה כ"מופשטת "וגם כ"סופית".

סוג גמר A {// ...} מחלקה B מרחיבה A {// כיתה ב 'לא יכולה לרשת את מחלקה A // ...}

  • ב- Java "סוף סוף" הוא חסימה המשויכת תמיד לחסימת ה- try / catch.
  • החסימה "סוף סוף" מבוצעת לאחר חסימת ה- try / catch ולפני הקוד אחר חסימת ה- try / catch.
  • החסימה "סוף סוף" תבצע אם החריגה נזרקת או לא.
  • כאשר נזרק חריג, ואף חסימת תפיסה לא תואמת את החריג אפילו אז, הבלוק "סוף סוף" מבוצע.
  • כאשר שיטה חוזרת למתקשר מתוך חסימת ה- try / catch באמצעות חריג שאינו נתפס או הצהרת החזרה מפורשת, החסימה "סוף סוף" מבוצעת רגע לפני שהשיטה חוזרת למתקשר.
  • החסימה "סוף סוף" משמשת לניקוי המשאבים או פניית הזיכרון המשמש בבלוק "נסה".
  • החסימה "סוף סוף" היא אופציונלית, אבל זה שיטה טובה לכתוב סוף סוף חסימת לאחר חסימת ה- try / catch.

class סוף דוגמה {// שיטה זו זורקת חריג מהשיטה. static void procA () {נסה {System.out.ln ("בתוך procA"); לזרוק RuntimeException חדש ("הדגמה"); } סוף סוף {System.out.ln ("procAs סוף סוף"); }} // חזור מתוך חסימת ניסיון. static void procB () {נסה {System.out.ln ("בתוך procB"); להחזיר; } סוף סוף {System.out.ln ("procBs סוף סוף"); }} // בצע חסימת ניסיון בדרך כלל. static void procC () {נסה {System.out.ln ("בתוך procCC"); } סוף סוף {System.out.ln ("procCs סוף סוף"); }} main static void main (מחרוזת args) {try {procA (); } catch (חריג ה) {System.out.ln ("חריג נתפס"); } procB (); procC (); }} // פלט בתוך סוף סוף procA procA יוצא מן הכלל שנתפס בתוך procB procB סוף סוף בתוך procC procC סוף סוף

הגדרת סיום

  • סיום הוא שיטה במחלקת אובייקטים.
  • ייתכן שאובייקט מחזיק כמה משאבים שאינם ג'אווה, כגון ידית קבצים; אז יש לשחרר אותו לפני שהוא נהרס.
  • שיטה זו מופעלת על ידי אספן האשפה לפני שהיא הורסת את האובייקט לחלוטין.
  • שיטה זו מבצעת פעולות ניקוי של האובייקט לפני שהוא נהרס.

הצורה הכללית של השיטה סופית () היא כדלקמן.


סיים חלל מוגן () {// קוד סיום כאן}

שיטת הסיום מוצהרת כמוגנת כך שלא ניתן לגשת אליה מחוץ למחלקה.

שיטה זו נקראת תמיד לפני אוסף האשפה.

  1. מילת המפתח final היא שינוי גישה, סוף סוף היא חסימה וסיום היא שיטה.
  2. מילת המפתח הסופית חלה על הכיתות, המשתנים והשיטות של הכיתות, לבסוף היא בלוק המשויך לחסימה לתפוס את השימוש בו כדי לטפל בחריגים, סיום הוא שיטה הפועלת רק על עצמים.
  3. המשתנה לאחר שהוכרז כסופי הופך להיות קבוע ולא ניתן להקצות אותו שוב, שיטה שהוכרזה כסופית לא ניתנת לביטול, והמחלקה שהוכרזה סופית לעולם אינה יכולה לעבור בירושה. החסימה לבסוף משמשת לניקוי המשאבים בהם נעשה שימוש על ידי ניסיון לתפוס חסימה. שיטת הסיום משמשת לניקוי המשאבים בהם משתמש אובייקט לפני שהאובייקט נהרס.

סיכום:

לגמר, סוף סוף ולסיים יש השפעה שונה כאשר מיושמים בשיטה.