שיטה סטטית לעומת לא סטטית
שיטה היא סדרה של הצהרות שמתבצעת כדי לבצע משימה מסוימת. שיטות יכולות לקחת תשומות ולהפיק פלטים. שיטות סטטיות ולא סטטיות הן שני סוגים של שיטות הקיימות בשפות תכנות מונחה עצמים. שיטה סטטית היא שיטה שמשויכת למחלקה. שיטה שמשויכת לאובייקט נקראת שיטה לא סטטית (מופע). בשפות מונחה עצמים, שיטות משמשות כמנגנון לפעול על נתונים המאוחסנים באובייקטים.
מהי שיטה סטטית?
בתכנות מונחה עצמים, שיטה סטטית היא שיטה המשויכת למחלקה.לכן, לשיטות סטטיות אין את היכולת לפעול על מופע מסוים של מחלקה. ניתן להפעיל שיטות סטטיות מבלי להשתמש באובייקט מהמחלקה שמכילה את המתודה הסטטית. להלן דוגמה להגדרת שיטה סטטית ב-Java. יש להשתמש בסטטי בעת הגדרת שיטה סטטית ב-Java.
public class MyClass { public static void MyStaticMethod() { // קוד של השיטה הסטטית }
}
ניתן לקרוא לשיטה הסטטית שהוגדרה למעלה באופן הבא באמצעות שם המחלקה שאליה היא שייכת.
MyClass. MyStaticMethod();
דבר אחד שחשוב לציין הוא ששיטות סטטיות יכולות לגשת רק לחברים סטטיים.
מהי שיטה לא סטטית?
מתודה לא סטטית או שיטת מופע היא שיטה שמשויכת לאובייקט במחלקה. לכן, מתודות לא סטטיות נקראות באמצעות אובייקט מהמחלקה שבה מוגדרת המתודה.שיטה לא סטטית יכולה לגשת לחברים לא סטטיים כמו גם לחברים סטטיים של מחלקה. בשפות רבות מוכוונות עצמים (כגון C++, C, Java), כאשר קוראים למתודה לא סטטית, האובייקט שהפעיל את השיטה מועבר כארגומנט מרומז (זה נקרא הפניה 'זה'). לכן, בתוך השיטה ניתן להשתמש במילת המפתח הזו כדי להתייחס לאובייקט שקרא לשיטה. להלן דוגמה להגדרת שיטת מופע ב-Java.
public class MyClass { public void MyInstanceMethod() { // קוד של שיטת המופע }
}
ניתן לקרוא לשיטת המופע שהוגדרה למעלה באופן הבא באמצעות אובייקט מהמחלקה אליה היא שייכת.
MyClass objMyClass=new MyClass();
objMyClass. MyInstanceMethod ();
מה ההבדל בין שיטה סטטית לשיטה לא סטטית?
מתודות סטטיות הן שיטות המשויכות למחלקה, בעוד ששיטות לא סטטיות הן שיטות המשויכות לאובייקטים של מחלקה.מחלקה צריכה להיות מופעלת תחילה כדי להפעיל שיטה לא סטטית, אבל לשיטות סטטיות אין דרישה זו. ניתן להפעיל אותם פשוט באמצעות שם המחלקה שמחזיקה בשיטה הסטטית. הבדל חשוב נוסף הוא שלשיטה לא סטטית יש בדרך כלל הפניה לאובייקט שקרא לשיטה וניתן לגשת אליה באמצעות מילת המפתח הזו בתוך השיטה. אבל לא ניתן להשתמש במילת מפתח זו בשיטות סטטיות מכיוון שהן אינן משויכות לאובייקט מסוים.