הבדל מפתח - סופי לעומת סוף סוף מול סופי ב-Java
הסופי, הסופי והסופי הם מונחים נפוצים המשמשים בתכנות Java. הגמר הוא מילת מפתח. זה יכול לשמש עבור משתנים, שיטות או מחלקות. יש לאתחל את המשתנים שהוכרזו כסופיים פעם אחת בלבד. אי אפשר לשנות אותם. מכיוון ש-Java היא שפה התומכת בתכנות מונחה עצמים, היא מאפשרת ליצור מחלקות ממחלקות קיימות כדי לשפר את השימוש החוזר בקוד. לפעמים, ייתכן שיהיה צורך להימנע משימוש בשיעורים הקיימים. לשם כך, ניתן להשתמש בסופי. בתכנות יכולות להיות שגיאות וחשוב לטפל בהן כדי להפעיל את התוכנה בצורה נכונה.הגמר היא שיטה שנקראת על ידי אספן האשפה. אז לכל המונחים האלה יש משמעויות שונות בהתאם. הסופי היא מילת מפתח שמונעת שינוי משתנים, נמנעת מעקיפה של השיטה ונמנעת מהארכת מחלקות. לבסוף הוא חסם בטיפול בחריגים, שיבוצע בין אם נזרק חריג או לא. הגמר היא שיטה, שנקראת על ידי אספן האשפה לפני שהיא משמידה את האובייקט לחלוטין. זה ההבדל המפתח לבסוף ולסיים ב-Java.
מה זה סופי ב-Java?
הסופי היא מילת מפתח ב-Java. מכיוון ש-Java תומכת בתכנות מונחה עצמים, תת-המחלקות יכולות להשתמש במשתנים ובשיטות של מחלקה שכבר קיימת. המחלקה הקיימת כבר היא מחלקת העל ואילו המחלקה החדשה היא תת המחלקה. אם המתכנת רוצה למנוע מהמשתנה לגשת למחלקות אחרות, הוא יכול להכריז על המשתנה כ'סופי'. לדוגמה, נניח שיש משתנה כ-p. הוא מוכרז כסופי ומאתחל את הערך 10.לְמָשָׁל final int p=10. אם ערך p ישתנה שוב ל-20, זה יגרום לשגיאה בזמן הידור. מילת המפתח הסופית מונעת משינוי הערך של המשתנה.
מחלקה יכולה להשתמש בשיטה שכבר נמצאת במחלקה קיימת. נניח שיש מחלקה בשם B שיש לה מתודה display(). המחלקה החדשה היא C, והיא מרחיבה את המחלקה B. אם למחלקה C יש גם מתודה שנקראת display(), אזי השיטה המקורית של class B display() נדחפת. אם המתכנת רוצה למנוע מהשיטה לעקוף, אז הוא יכול להשתמש במילת המפתח לבסוף. לְמָשָׁל final void display(){ }. הפיכת שיטה סופית מבטיחה שהפונקציונליות של השיטה לעולם לא תשתנה.
איור 01: סופי, לבסוף וסופי
אפשר גם להשתמש במילת המפתח הסופית עבור כיתה. המחלקה החדשה אינה יכולה לרשת משתנים ושיטות של מחלקה סופית. זה שימושי כדי להגביר את האבטחה. מכיוון שהמחלקות מונעות שימוש על ידי תת המחלקות, הנתונים מוגנים.
מה יש סוף סוף בג'אווה?
בתכנות, יכולות להיות שגיאות. שגיאות עלולות לגרום לפלטים שגויים או להפסיק את הביצוע של תוכנית. חשוב להשתמש במנגנון כלשהו כדי למנוע את התוצאות הבלתי צפויות הללו. שגיאות יכולות להיות משני סוגים. הן שגיאות זמן קומפילציה ושגיאות זמן ריצה. שגיאות זמן קומפילציה מתרחשות עקב שגיאות תחביריות. כמה שגיאות נפוצות בזמן הידור הן חסרות נקודה-פסיק, חסרים סוגרים מסולסלים, מזהי איות שגוי, מילות מפתח ומשתנים לא מוכרזים. המהדר לא יצור את קובץ ה-.class עד שהשגיאות האלה יתוקנו.
לפעמים יכולות להיות תוכניות שמקמפלות כמו שצריך אבל נותנות פלט שגוי. הם נקראים שגיאות זמן ריצה. כמה שגיאות זמן ריצה נפוצות הן צלילה של מספר שלם באפס וגישה לאלמנט שהוא מחוץ לתחום של מערך. שגיאות אלו לא יגרמו לשגיאה בזמן ההידור, אך הפלט שגוי. חריג הוא מצב שנגרם משגיאת זמן ריצה בתוכנית.
כאשר יש שגיאת זמן ריצה, Java יוצרת אובייקט חריג וזורקת אותו. אם האובייקט החריג לא נתפס כראוי, הוא יציג הודעת שגיאה ויסיים את התוכנית. אם המתכנת רוצה להמשיך בביצוע התוכנית עם שאר הקוד, עליו לתפוס את אובייקט החריגה ולהציג את ההודעה הדרושה לפעולה מתקנת. תהליך זה ידוע כטיפול בחריגים.
ב-Java, try משמש לקוד שעלול לגרום לשגיאה ולזרוק חריג. ה-catch משמש לטיפול בחריג שנזרק על ידי בלוק try. יכולות להיות מספר הצהרות תפיסה. ניתן להשתמש בהצהרות הסופי כדי לטפל בחריג שלא נתפס באף אחת מהצהרות ה-catch קודמות. החסימה הסופית תתבצע בין אם נזרק חריג או לא. עיין בדוגמה הנתונה.
int p=10, q=5, r=5;
int answer;
try{
answer=p / (q – r);
}
catch (ArithmeticException e){
System.out.println("מחולק באפס");
}
סוף סוף{
System.out.println("החסימה לבסוף מבוצעת");
}
לפי הדוגמה לעיל, הערך p מחולק באפס, וזה יגרום לחריגה. לכן, הוא נתפס על ידי הצהרת ה-catch. זה ידפיס את ההודעה, מחולקת באפס. החסימה הסופית תתבצע בין אם אירע חריג או לא. לאחר ההודעה חלוקה באפס, ההודעה בתוך הבלוק הסופי תוצג. לכן, סוף סוף משמש בלוק בטיפול בחריגים.
מה זה לסיים ב-Java?
ב-OOP, אובייקטים נוצרים באמצעות מחלקות. שיטת הבנאי יכולה לאתחל אובייקט כאשר הוא מוכרז. התהליך ידוע בשם אתחול. לג'אווה יש גם מושג שנקרא גימור. זמן הריצה של Java הוא אוסף אשפה אוטומטי.זה מפנה אוטומטית את משאבי הזיכרון המשמשים את האובייקטים. אספן האשפה קורא לשיטה הזו לפני שהוא משמיד את החפץ.
אובייקטים מסוימים עשויים להחזיק משאבים שאינם אובייקטים. דוגמה אחת היא מתאר קובץ. במצבים אלה, אוסף האשפה קורא לשיטת הסופי. לְמָשָׁל לְסַכֵּם(). שיטה זו מבצעת עיבוד ניקוי רגע לפני שהאובייקט נאסף אשפה.
מהו הדמיון בין סוף סוף לסופי ב-Java?
כל הסופי, הסופי והסופיים ב-Java משמשים בתכנות Java
מה ההבדל בין סוף סוף לגמר בג'אווה?
final vs finally vs finalize |
|
final | הסופי היא מילת מפתח ב-Java שמונעת שינוי של משתנים, הימנעות מעקיפה של שיטה והימנעות מהארכת מחלקות. |
finally | סוף סוף הוא בלוק בטיפול בחריגים ב-Java, שיבוצע בין אם נזרק חריג או לא. |
finalize | הסיום היא שיטה ב-Java, שנקראת על ידי אספן האשפה לפני שהיא משמידה את האובייקט לחלוטין. |
ישימות | |
final | הגמר ישים למשתנים, שיטות ומחלקות. |
finally | סוף סוף ישים עם ניסיון ותפוס בלוקים. |
finalize | הסיום חל על אובייקטים. |
סיכום – סופי לעומת סופסוף מול סיום ב-Java
הסופי, הסופי והסופי הם מונחים נפוצים המשמשים בתכנות Java.המילים שלהם נראות זהות, אבל יש ביניהן הבדל. הסופי היא מילת מפתח שמונעת שינוי משתנים, הימנעות מעקיפה של שיטה והימנעות מהרחבת מחלקות. לבסוף הוא חסם בטיפול בחריגים, שיבוצע בין אם נזרק חריג או לא. הגמר היא שיטה, שנקראת על ידי אספן האשפה לפני שהיא משמידה את האובייקט לחלוטין. זה ההבדל בין סופי, סופית וסופי בתכנות ג'אווה.
הורד את ה-PDF של final vs finally vs finalize ב-Java
ניתן להוריד את גרסת ה-PDF של מאמר זה ולהשתמש בה למטרות לא מקוונות לפי הערת ציטוט. אנא הורד את גרסת ה-PDF כאן: ההבדל בין סוף סוף וסופי ב-Java