בתכנות Java, חתימת שיטה מתייחסת למזהה הייחודי של שיטה. הוא מורכב משם השיטה ורשימת הפרמטרים שלה. החתימה עוזרת להבדיל בין שיטה אחת לאחרת ומאפשרת למהדר Java להתאים קריאות למתודה להגדרות המתאימות שלהן. חתימת השיטה כוללת את הרכיבים הבאים:
שם השיטה: | זה השם שניתן לשיטה, שאמור להיות מזהה Java חוקי ועוקב אחר מוסכמות השמות. שם השיטה צריך להיות תיאורי ולשקף את הפונקציונליות שהיא מבצעת.
רשימת פרמטרים: | הוא מציין את הפרמטרים או הארגומנטים ששיטה מצפה לקבל כאשר היא נקראת. כל פרמטר ברשימה מורכב מסוג הפרמטר ושמו. פרמטרים מרובים מופרדים בפסיקים. אם שיטה אינה דורשת פרמטרים כלשהם, נעשה שימוש ברשימת פרמטרים ריקה. לדוגמה:
public void methodName() {}
אם לשיטה יש פרמטרים, החתימה כוללת את סוגי הפרמטרים והשמות:
public void methodName(int param1, String param2) {}
מה זה $home linux
סוג החזרה: | הוא מגדיר את סוג הנתונים של הערך שהשיטה מחזירה. אם שיטה לא מחזירה שום ערך, סוג ההחזרה מצוין כבטל. אם הוא מחזיר ערך, סוג ההחזר צריך להתאים לסוג הנתונים של הערך המוחזר. לדוגמה:
public int methodName() {}
אם מתודה מחזירה מערך או אובייקט, סוג ההחזרה מייצג את סוג המערך או את המחלקה של האובייקט המוחזר. השילוב של שם השיטה ורשימת הפרמטרים מזהה באופן ייחודי מתודה בתוך מחלקה. Java תומכת בעומס יתר של שיטות, מה שאומר שאתה יכול להגדיר מספר שיטות עם אותו שם אך רשימות פרמטרים שונות. לשיטות עמוסות יתר יש חתימות שונות, המאפשרות למהדר לקבוע את השיטה המתאימה לביצוע בהתבסס על הארגומנטים שסופקו. חשוב לציין שחתימת השיטה אינה כוללת את משנה הגישה של השיטה (כגון ציבורי, פרטי או מוגן) או מתקנים אחרים (כגון סטטי או סופי). מתקנים אלה מציינים את הנראות וההתנהגות של השיטה אך אינם נחשבים לחלק מהחתימה.
משנה גישה: | למרות שאינם נחשבים כחלק מחתימת השיטה, משנה גישה כמו ציבורית, פרטית או מוגנת קובעים את הנראות של השיטה. הם מציינים מהיכן ניתן לגשת לשיטה. לדוגמה, ניתן לגשת למתודה ציבורית מכל מחלקה, בעוד למתודה פרטית ניתן לגשת רק בתוך אותה מחלקה.
משנה: | בנוסף למתאמני גישה, לשיטות יכולות להיות מתקנים אחרים כגון סטטי, סופי, מופשט או מסונכרן, המגדירים התנהגויות ואילוצים שונים של השיטה. שינויים אלה גם אינם משפיעים על חתימת השיטה.
חריגים: | אם שיטה זורקת חריג אחד או יותר, הם חלק מחתימת השיטה. חריגים מוצהרים בחתימת השיטה באמצעות מילת המפתח throws, ואחריה רשימת סוגי החריגים. זה מצביע על כך שהשיטה יכולה לזרוק את החריגים הללו במהלך ביצועה. לדוגמה:
public void methodName() throws IOException, IllegalArgumentException {}
עומס יתר של שיטה: | Java תומכת בעומס יתר של שיטות, המאפשר לך להגדיר מספר שיטות עם אותו שם אך רשימות פרמטרים שונות. לשיטות עמוסות יתר יש חתימות ייחודיות המבוססות על המספר, הסוג והסדר של הפרמטרים שלהן. סוג ההחזרה לבדו אינו מספיק כדי להבדיל בין שיטות עמוסות יתר. לדוגמה:
public void methodName(int param1) {} public void methodName(int param1, int param2) {} public void methodName(String param1) {}
סוג החזרה: | סוג ההחזרה אינו חלק מחתימת השיטה כאשר בוחנים עומס יתר של השיטה. עם זאת, אם לשתי שיטות יש את אותו שם ורשימת פרמטרים אך שונות בסוג ההחזר שלהן, הדבר יביא לשגיאת קומפילציה. ג'אווה אינה מאפשרת עומס יתר של שיטות על סמך סוג ההחזרה בלבד.
Vararg: | Java תומכת בארגומנטים באורך משתנה, הידוע גם בשם varargs, בפרמטרים של שיטה. פרמטר varargs מאפשר להעביר מספר משתנה של ארגומנטים מאותו סוג למתודה. הפרמטר varargs מסומן באליפסיס (...) אחרי סוג הפרמטר. לדוגמה:
public void methodName(int... numbers) {}
עם varargs, אנחנו יכולים לקרוא למתודה עם כל מספר של ארגומנטים int, כולל אפס.
הבנת חתימות השיטה חיונית בעת עבודה עם הפעלות לשיטה, הטמעת ממשקים, הרחבת מחלקות או שימוש בהשתקפות. זה מבטיח שהשיטה הנכונה נקראת ומספק דרך עקבית וחד משמעית לזהות שיטות בתוכניות Java.