ݺߣ

ݺߣShare a Scribd company logo
ג'אווה - תכנות מונחה עצמים - מתודות - שליפה והכנסה, סטטיות, סופיות ומתודות שעבר זמנן
‫מתודות‬-Methods
‫ובאותו‬ ‫מחלקה‬ ‫לאף‬ ‫שייכת‬ ‫לא‬ ‫מתודה‬ ‫בו‬ ‫מצב‬ ‫ייתכן‬ ‫לא‬ ,‫כלומר‬ ,‫בדיוק‬ ‫אחת‬ ‫למחלקה‬ ‫להשתייך‬ ‫חייבת‬ ‫בג'אווה‬ ‫מתודה‬ ‫כל‬
.‫אחת‬ ‫ממחלקה‬ ‫ליותר‬ ‫שייכת‬ ‫מתודה‬ ‫בו‬ ‫מצב‬ ‫ייתכן‬ ‫לא‬ ,‫האופן‬
,‫המתודה‬ ‫אותה‬‫ואין‬ ‫המחלקה‬ ‫של‬ ‫ההכרה‬ ‫מרחב‬ ‫בתוך‬ ‫והוגדרה‬ ‫הוצהרה‬ ‫שהיא‬ ‫בכך‬ ‫אליה‬ ‫משתייכת‬ ,‫למחלקה‬ ‫המשתייכת‬
.‫לה‬ ‫מחוצה‬ ‫והגדרה‬ ‫המחלקה‬ ‫בתוך‬ ‫המתודה‬ ‫על‬ ‫הצהרה‬ ‫לבצע‬ ‫אחרות‬ ‫בשפות‬ ‫כמו‬ ‫אפשרות‬
getters & setters
‫שיותר‬ ‫כמה‬ ‫להגדיר‬ ‫נעדיף‬ ‫אנו‬ ,‫שלנו‬ ‫המופע‬ ‫למשתני‬ ‫ישירה‬ ‫גישה‬ ‫מתבצעת‬ ‫בו‬ ‫מצב‬ ‫למנוע‬ ‫ע"מ‬‫כמשתנים‬ ‫שלנו‬ ‫מהמשתנים‬
‫גישה‬ ‫מציין‬ ‫בעלי‬private‫בהתאם‬ ‫וזאת‬ ‫ולצפייה‬ ‫לעדכון‬ ‫המשתנה‬ ‫של‬ ‫חשיפה‬ ‫לאפשר‬ ‫מעוניינים‬ ‫כן‬ ‫אנו‬ ,‫זאת‬ ‫עם‬ .
‫מתודות‬ .‫להגדרתנו‬get‫ו‬-set‫מה‬ ‫את‬ ‫רק‬ ‫רואה‬ ‫שהלקוח‬ ‫כזה‬ ‫באופן‬ ‫שלנו‬ ‫המופע‬ ‫למשתני‬ ‫ממוסכת‬ ‫גישה‬ ‫לנו‬ ‫מאפשרות‬
‫את‬ ‫רק‬ ‫ומשנה‬ ‫יראה‬ ‫שהוא‬ ‫רוצים‬ ‫שאנחנו‬‫לכתוב‬ ‫ניתן‬ ,‫לדוגמה‬ .‫אותו‬ ‫שישנה‬ ‫רוצים‬ ‫אנו‬ ‫בו‬ ‫ובאופן‬ ‫שישנה‬ ‫רוצים‬ ‫שאנחנו‬ ‫מה‬
‫מתודת‬set‫לקרות‬ ‫שעלולות‬ ‫שונות‬ ‫שגיאות‬ ‫למנוע‬ ‫ובכך‬ ,‫ההשמה‬ ‫בטרם‬ ‫הקלט‬ ‫נכונות‬ ‫ובדיקת‬ ‫קלט‬ ‫מסכת‬ ‫מכילה‬ ‫אשר‬
.‫למשתנה‬ ‫ישירה‬ ‫גישה‬ ‫מאפשרים‬ ‫היינו‬ ‫באם‬ ‫להתקיים‬ ‫היה‬ ‫יכול‬ ‫שלא‬ ‫דבר‬ ,‫הדרך‬ ‫במהלך‬
‫כללי‬ ‫הגדרה‬‫למתודות‬ ‫ת‬get‫ו‬-set:
public class GetnSet {
private varType varName;
public varType getVarName() {
return varName;
}
public void setVarName(varType varName) {
this.varName = varName;
}
}
:‫הנ"ל‬ ‫מהמתודות‬ ‫אחת‬ ‫לכל‬ ‫מעשית‬ ‫דוגמה‬ ‫נביא‬
get()–‫שלנו‬ ‫ובמחלקה‬ ‫נניח‬Car‫משתנה‬ ‫קיים‬ ,price‫לסוחר‬ ‫שעלתה‬ ‫כפי‬ ,‫נטו‬ ‫המכונית‬ ‫מחיר‬ ‫את‬ ‫מכיל‬ ‫זה‬ ‫משתנה‬ .
‫רווח‬ ‫אחוז‬ ‫הוספת‬ ‫ע"י‬ ‫צרכן‬ ‫מחיר‬ ‫לייצר‬ ‫ברצונו‬ ,‫בפועל‬ ‫למחיר‬ ‫ישירה‬ ‫גישה‬ ‫לספק‬ ‫מעוניין‬ ‫אינו‬ ,‫הסוחר‬ ‫אותו‬ ‫אך‬ ,‫המכוניות‬
‫ת‬ ‫כמה‬ ‫יידע‬ ‫שהלקוח‬ ‫כך‬ ,‫רישוי‬ ‫ואגרת‬ ‫ייבוא‬ ‫עלויות‬ ,‫מסוים‬.‫ההוצאות‬ ‫כל‬ ‫לאחר‬ ‫המכונית‬ ‫לו‬ ‫עלה‬
‫המשתנה‬ ‫את‬ ‫להגדיר‬ ‫נוכל‬ ,‫כאלו‬ ‫במקרים‬price‫גישה‬ ‫מציין‬ ‫עם‬ ‫במשתנה‬private‫הלוגיקה‬ ‫את‬ ‫ולהכניס‬ ,-‫לחישוב‬ ‫הנוסחה‬
‫מתודה‬ ‫לתוך‬ ‫הסופי‬ ‫המחיר‬public‫בשם‬getPrice()‫המניפולציות‬ ‫את‬ ‫עליו‬ ‫שתעשה‬ ‫לפני‬ ‫לא‬ ,‫המחיר‬ ‫את‬ ‫תחזיר‬ ‫זו‬ ‫מתודה‬ .
‫או‬ ‫עפ"י‬ ‫הדרושות‬.‫הסוחר‬ ‫תו‬
set(varType var)–‫איננו‬ .‫המכונית‬ ‫מחיר‬ ‫את‬ ‫להזין‬ ‫לסוחר‬ ‫לאפשר‬ ‫מעוניינים‬ ‫אנו‬ ‫בו‬ ‫מקרה‬ ‫וניקח‬ ,‫הדוגמה‬ ‫אותה‬ ‫עם‬ ‫נמשיך‬
‫זה‬ ‫מסוג‬ ‫וטעויות‬ ‫במתכוון‬ ‫שלא‬ ‫לקרות‬ ‫עלולה‬ ‫שגויה‬ ‫הזנה‬ ,‫לעתים‬ .‫למשתנה‬ ‫ישירה‬ ‫גישה‬ ,‫לו‬ ‫לא‬ ‫אפילו‬ ,‫לאפשר‬ ‫מעוניינים‬
‫כ‬ ‫גם‬ .‫שלמה‬ ‫תכנית‬ ‫להפיל‬ ‫עלולות‬‫למשתנה‬ ‫שהגישה‬ ‫נוודא‬ ‫אן‬price‫הינה‬private‫מתודה‬ ‫וניצור‬setPrice(int price)‫עם‬
‫הרשאת‬public,‫שליליים‬ ‫ערכים‬ ‫של‬ ‫הזנה‬ ‫נמנע‬ ,‫לדוגמה‬ .‫לסנן‬ ‫שברצוננו‬ ‫הטעויות‬ ‫כל‬ ‫למניעת‬ ‫הלוגיקה‬ ‫כל‬ ‫את‬ ‫נכניס‬ ‫בה‬ ,
‫וכו‬ ‫למחיר‬ ‫מקסימום‬ ‫רף‬ ‫נקבע‬'.
‫המתודות‬ ‫של‬ ‫למימוש‬ ‫דוגמה‬ ‫נראה‬set()‫ו‬-get():
public class Car {
private int price;
private int customerPrice;
private int customs;
private int tax;
private int registration;
public int getCustoms() {
return customs;
}
public void setCustoms(int customs) {
this.customs = customs;
}
public int getTax() {
return tax;
}
public void setTax(int tax) {
this.tax = tax;
}
public int getRegistration() {
return registration;
}
public void setRegistration(int registration) {
this.registration = registration;
}
private int getRealPrice() {
return price;
}
public void setPrice(int price) {
if (price<0)
System.out.println("Negative value not allowed!");
else if (price>100000)
System.out.println("Can't afford to buy at more than 100,000!");
else {
this.price = price;
setCustomerPrice(price);
}
}
private void setCustomerPrice(int price) {
customerPrice = price+getTax()+getCustoms()+getRegistration();
}
public int getPrice() {
if (getRealPrice()==0)
System.out.println("Price calculated without purchase price");
if (getRegistration()==0)
System.out.println("Price calculated without registration fees");
if (getTax()==0)
System.out.println("Price calculated without tax amount");
if (getCustoms()==0)
System.out.println("Price calculated without customs fees");
return customerPrice;
}
}
:‫הנ"ל‬ ‫הקוד‬ ‫מדוגמת‬ ‫המעניינות‬ ‫מהנקודות‬ ‫למעט‬ ‫נתייחס‬ ‫כעת‬
‫כ‬ ‫הוגדרו‬ ‫כולם‬ ‫המשתנים‬-private‫יש‬ ‫משתנה‬ ‫של‬ ‫ערכו‬ ‫את‬ ‫לעדכן‬ ‫ע"מ‬ ,‫כזה‬ ‫באופן‬ ,‫כאמור‬ .‫אליהם‬ ‫ישירה‬ ‫גישה‬ ‫למנוע‬ ‫ע"מ‬
‫במתודת‬ ‫לעבור‬ ‫צורך‬set.‫צורך‬ ‫בכך‬ ‫יש‬ ‫אם‬ ,‫המוזנים‬ ‫הערכים‬ ‫לגבי‬ ‫חוקיות‬ ‫שהגדירה‬
‫המתודות‬ ‫הוגדרו‬ ,‫כן‬ ‫כמו‬setCustomerPrice,getRealPrice‫כ‬-private‫הצרכן‬ ‫מחיר‬ ‫של‬ ‫ידנית‬ ‫הזנה‬ ‫למנוע‬ ‫רצון‬ ‫מתוך‬
‫הוא‬ ,‫שהוזן‬ ‫מרגע‬ .‫המכונית‬ ‫של‬ ‫הבסיס‬ ‫מחיר‬ ‫לגבי‬ ‫מידע‬ ‫קבלת‬ ‫למנוע‬ ‫ורצון‬ ,)‫גורמים‬ '‫ממס‬ ‫(מורכב‬ ‫המכונית‬ ‫של‬‫לא‬ ‫כבר‬
.‫קיימות‬ ‫הן‬ ‫ולכן‬ ‫המחלקה‬ ‫הגדרת‬ ‫בתוך‬ ‫גם‬ ‫אלו‬ ‫במתודות‬ ‫שימוש‬ ‫לעשות‬ ‫נרצה‬ ‫אנו‬ ,‫זאת‬ ‫עם‬ ‫יחד‬ .‫עבורנו‬ ‫יותר‬ ‫רלוונטי‬
‫המתודה‬setPrice‫ל‬ ‫לקבוע‬ ‫שניתן‬ ‫הערכים‬ ‫טווח‬ ‫את‬ ‫מגבילה‬price-‫גישה‬ ‫מאפשרים‬ ‫היינו‬ ‫אם‬ ‫מתאפשר‬ ‫היה‬ ‫שלא‬ ‫דבר‬ ,
‫והמתודה‬ ,‫למשתנה‬ ‫ישירה‬getPrice‫את‬ ‫בכלל‬ ‫מחזירה‬‫המשתנה‬ ‫של‬ ‫ערכו‬customerPrice‫של‬ ‫ערכו‬ ‫את‬ ‫ולא‬price‫כפי‬
.‫לצפות‬ ‫אולי‬ ‫היה‬ ‫שניתן‬
‫היכולות‬ ‫כל‬ ‫את‬ ‫מאבדים‬ ‫בעצם‬ ‫אנו‬ ‫למשתנים‬ ‫ישירה‬ ‫שבגישה‬ ,‫הנקודה‬ ‫את‬ ‫לחדד‬ ‫ע"מ‬ ‫בכוונה‬ ‫כזה‬ ‫באופן‬ ‫זו‬ ‫דוגמה‬ ‫הראיתי‬
‫שלנו‬ ‫המשתנים‬ ‫בו‬ ‫ובאופן‬ ‫בנעשה‬ ‫שולטים‬ ‫אנו‬ ,‫מתודות‬ ‫דרך‬ ‫הגישה‬ ‫במתן‬ ,‫שלעיל‬ ‫שהוצגו‬.‫ומעודכנים‬ ‫מוצגים‬
‫לגשת‬ ‫יהיה‬ ‫ניתן‬ ‫שלא‬ ‫כך‬ ,‫מופע‬ ‫למשתני‬ ‫הגישה‬ ‫להסתרת‬ ‫מוחלט‬ ‫כמעט‬ ‫באופן‬ ‫שנשאף‬ ‫ע"מ‬ ‫מספיקות‬ ‫לעיל‬ ‫שהוצגו‬ ‫הסיבות‬
.‫המחלקה‬ ‫לגבולות‬ ‫מחוץ‬ ‫ישירה‬ ‫בצורה‬ ‫אליהם‬
:‫המחלקה‬ ‫הגדרת‬ ‫בתוך‬ ‫בהן‬ ‫שימוש‬ ‫תוך‬ ‫הפעם‬ ,‫שכאלו‬ ‫במתודות‬ ‫לשימוש‬ ‫מהותית‬ ‫סיבה‬ ‫נציג‬ ,‫כעת‬
‫על‬ ‫שמירה‬maintainability–‫קלה‬ ‫קוד‬ ‫תחזוקת‬
‫המשתנה‬ ‫על‬ ‫לדבר‬ ‫רצינו‬ ‫בו‬ ‫בקוד‬ ‫מקום‬ ‫ובכל‬ ‫קוד‬ ‫שורות‬ ‫אלפי‬ ‫על‬ ‫משתרעת‬ ‫שלנו‬ ‫שהתוכנית‬ ‫נניח‬number‫תוך‬ ‫זאת‬ ‫עשינו‬ ,
‫שהוגדרו‬ ‫למשתנים‬ ‫לפנות‬ ‫יכולים‬ ‫אנו‬ ,‫כך‬ ‫ובשל‬ ,‫שלנו‬ ‫המחלקה‬ ‫הגדרת‬ ‫בתוך‬ ‫נמצאים‬ ‫אנו‬ ‫(הרי‬ ‫המשתנה‬ ‫בשם‬ ‫ישירה‬ ‫קריאה‬
‫כ‬-private‫"מ‬.)‫עתה‬ ‫זה‬ ‫מגדירים‬ ‫שאנו‬ ‫המחלקה‬ ‫של‬ ‫ההכרה‬ ‫בטווח‬ ‫נמצאים‬ ‫שאנחנו‬ ‫עוד‬ ‫כל‬ "‫חשש‬ ‫בלי‬
‫שהמתודה‬ ‫גם‬ ‫נניח‬getNumber()‫המשתנה‬ ‫של‬ ‫ערכו‬ ‫את‬ ‫מחזירה‬ ‫בסה"כ‬ ,number‫מה‬ ‫כל‬ ‫אם‬ ,‫ולכן‬ ,‫דבר‬ ‫שום‬ ‫למסך‬ ‫מבלי‬
‫לכתוב‬ ‫מיותר‬ ‫כמאמץ‬ ‫נראה‬ ,‫המשתנה‬ ‫של‬ ‫ערכו‬ ‫את‬ ‫למשל‬ ‫להדפיס‬ ‫זה‬ ‫לעשות‬ ‫רוצים‬ ‫שאנחנו‬println(getNumber())‫במקום‬
‫לכתוב‬ ‫פשוט‬println(number).
‫יכולנו‬ ‫ושאכן‬ ‫טובה‬ ‫תשובה‬ ‫באמת‬ ‫שאין‬ ‫הראשוני‬ ‫האינסטינקט‬ ‫אומר‬ ,‫זה‬ ‫מסוג‬ ‫שאלה‬ ‫על‬ ‫לענות‬ ‫נדרשים‬ ‫אנו‬ ‫בהם‬ ‫במקרים‬
?...‫יותר‬ ‫הפשוטה‬ ‫המקוצרת‬ ‫בדרך‬ ‫לא‬ ‫למה‬ ‫אז‬ ,‫הדבר‬ ‫כך‬ ‫ואם‬ ‫שקול‬ ‫באופן‬ ‫הצורות‬ ‫בשתי‬ ‫להשתמש‬
‫ע‬ ‫לדבר‬ ‫הזמן‬ ‫בדיוק‬ ‫כאן‬:"‫קוד‬ ‫"תחזוקת‬ ‫שנקרא‬ ‫הנושא‬ ‫ל‬
‫זאת‬ ‫שעשינו‬ ‫ונניח‬ ‫הקוד‬ ‫רצף‬ ‫בתוך‬ ‫ישירות‬ ‫המשתמש‬ ‫בשם‬ ‫השתמשנו‬ ‫שאכן‬ ‫נניח‬055‫לנו‬ ‫והתגלה‬ ‫נניח‬ ,‫כן‬ ‫כמו‬ .‫פעמים‬
‫של‬ ‫ערכו‬ ‫את‬ ‫להדפיס‬ ‫פונים‬ ‫שאנו‬ ‫פעם‬ ‫בכל‬ ‫צריכים‬ ‫שאנחנו‬number+ ‫ערכו‬ ‫את‬ ‫להדפיס‬ ,1.
,‫התכנית‬ ‫את‬ ‫להדר‬ ‫שנוכל‬ ‫ע"מ‬ ,‫שתיארתי‬ ‫להנחות‬ ‫בהתאם‬‫כתבנו‬ ‫בו‬ ‫מקום‬ ‫לכל‬ ‫לגשת‬ ‫צורך‬ ‫יש‬number‫ל‬ ‫ולשנות‬-number
+1.
‫מתודת‬ ‫אותה‬ ‫דרך‬ ‫ורק‬ ‫אך‬ ‫למשתנה‬ ‫לפנות‬ ‫יהיה‬ ,‫זו‬ ‫לבעיה‬ "‫"מיינטיינאבילי‬ ‫פתרון‬getNumber()‫ב‬ ‫שיופיע‬ ‫שבמקום‬ ‫כך‬ ,-055
‫המשתנה‬ ‫שם‬ ‫מקומות‬number,‫ב‬ ‫תופיע‬-055‫למתודה‬ ‫הקריאה‬ ‫מקומות‬getNumber()‫של‬ ‫ערכו‬ ‫את‬ ‫שמחזירה‬‫המשתנה‬
number‫של‬ ‫הלוגיקה‬ ‫בתוך‬ ‫אותו‬ ‫לבצע‬ ‫נוכל‬ ,‫הנ"ל‬ ‫השינוי‬ ‫של‬ ‫במקרה‬ ‫שגם‬ ‫כך‬ ,getNumber()‫שתחזיר‬ ‫כך‬ ,‫בדיוק‬ ‫אחת‬ ‫פעם‬
number +1‫במקום‬number.‫התכנית‬ ‫בשאר‬ ‫דבר‬ ‫לשנות‬ ‫מבלי‬
‫מחלקה‬ ‫מתודות‬–‫סטטיות‬ ‫מתודות‬–Static Methods
‫השמורה‬ ‫המילה‬ ‫תתווסף‬ ‫ההגדרה‬ ‫לשורת‬ ,‫המשתנה‬ ‫להגדרת‬ ‫בדומה‬ ‫תיעשה‬ ‫סטטית‬ ‫מתודה‬ ‫הגדרת‬static‫ערך‬ ‫לפני‬
:‫הבא‬ ‫באופן‬ .‫הגישה‬ ‫מציין‬ ‫ואחרי‬ ‫המתודה‬ ‫של‬ ‫החזרה‬
public static void staticMethod() {
}
‫המח‬ ‫לשם‬ ‫ישירה‬ ‫פניה‬ ‫ע"י‬ ‫או‬ ‫קיים‬ ‫אובייקט‬ ‫ע"י‬ ,‫המתודה‬ ‫את‬ ‫להפעיל‬ ‫ניתן‬ ,‫כאן‬ ‫גם‬‫אובייקטים‬ ‫כלל‬ ‫נוצרו‬ ‫לא‬ ‫אם‬ ‫גם‬ ,‫לקה‬
:‫מהמחלקה‬
car1.staticMethod(); //Method call via an instance
Car.staticMethod(); //Method call via Class name
‫המתודה‬ ‫את‬ ‫כדוגמה‬ ‫לראות‬ ‫ניתן‬main‫מאותה‬ ‫אובייקט‬ ‫יצרנו‬ ‫לא‬ ‫אם‬ ‫גם‬ ‫כאפליקציה‬ ‫המחלקה‬ ‫את‬ ‫להריץ‬ ‫ניתן‬ .‫תכנית‬ ‫בכל‬
‫של‬ ‫להיותה‬ ‫הודות‬ ‫לנו‬ ‫מתאפשר‬ ‫זה‬ .‫המחלקה‬main!‫סטטית‬
‫המתודה‬ ‫מוגדרת‬ ‫בה‬ ‫במחלקה‬ ‫מופע‬ ‫משתנה‬ ‫על‬ ‫נצהיר‬ ‫אם‬ ,‫לעיל‬ ‫שצוינו‬ ‫הסיבות‬ ‫מאותן‬main‫אפשרות‬ ‫לנו‬ ‫שאין‬ ‫נבחין‬ ,
‫זאת‬ ,‫הסטטית‬ ‫המתודה‬ ‫דרך‬ ‫אליו‬ ‫לגשת‬.‫האובייקט‬ ‫שנוצר‬ ‫לפני‬ ‫עוד‬ ‫קיימת‬ ‫הזו‬ ‫והמתודה‬ ‫היות‬
‫על‬ ‫לדבר‬ ‫ניתן‬ ‫לא‬ ‫גם‬ ‫האופן‬ ‫באותו‬this‫קיימת‬ ‫הסטטית‬ ‫שהמתודה‬ ‫שאמרנו‬ ‫והרי‬ ‫הנוכחי‬ ‫לאובייקט‬ ‫רפרנס‬ ‫מציין‬ ‫הוא‬ ‫שהרי‬ ,
.‫מסוים‬ ‫באובייקט‬ ‫תלות‬ ‫מבלי‬
.‫לדריסה‬ ‫ניתנות‬ ‫לא‬ ‫סטטיות‬ ‫מתודות‬
‫סופיות‬ ‫מתודות‬–Final Methods
‫א‬ ‫למנוע‬ ‫ניתן‬‫לעשות‬ ‫האפשרות‬ ‫ת‬Overriding‫הוספת‬ ‫ע"י‬ ‫למתודה‬final:‫להגדרתה‬
public final void FinalMethod() {
}
.‫יורשת‬ ‫במחלקה‬ ‫מחדש‬ ‫להגדרה‬ ‫ניתנם‬ ‫תהיה‬ ‫לא‬ ‫היא‬ ,‫זה‬ ‫באופן‬ ‫תוגדר‬ ‫שמתודה‬ ‫מרגע‬
‫היות‬ ,‫בביצועים‬ ‫ניכר‬ ‫שיפור‬ ‫גם‬ ‫יש‬ ,)‫המתודה‬ ‫פעולת‬ ‫אופי‬ ‫שינוי‬ ‫(מניעת‬ ‫הברור‬ ‫היתרון‬ ‫מלבד‬,‫כסופית‬ ‫מוגדרת‬ ‫שמתודה‬ ‫ובכך‬
.‫להשתמש‬ ‫יש‬ ‫מתודה‬ ‫של‬ ‫גרסה‬ ‫באיזו‬ ‫ריצה‬ ‫בזמן‬ ‫הבדיקה‬ ‫נחסכת‬
‫זמנן‬ ‫שעבר‬ ‫מתודות‬–Deprecated Methods
.‫למיושנות‬ ‫הפכו‬ ‫השפה‬ ‫של‬ ‫התחדשות‬ ‫שבעקבות‬ )‫מחלקות‬ ‫(או‬ ‫מתודות‬
‫לעשות‬ ‫ניתן‬ ‫הפקודה‬ ‫שורת‬ ‫דרך‬ ‫מהדרים‬ ‫אם‬ .‫אזהרה‬ ‫הודעת‬ ‫תינתן‬ ‫כאלה‬ ‫במתודות‬ ‫שימוש‬ ‫בעת‬‫של‬ ‫הוספה‬ ‫ע"י‬ ‫זאת‬
-deprecation‫הפקודה‬ ‫הרצת‬ ‫בעת‬javac.‫בנושא‬ ‫מידע‬ ‫ולקבל‬
‫באנוטציה‬ ‫להשתמש‬ ‫ניתן‬@Deprecated,‫זה‬ ‫מסימון‬ ‫כתוצאה‬ .‫ככאלו‬ ‫אותן‬ ‫לסמן‬ ‫וכך‬ ‫המתודה‬ ‫או‬ ‫המחלקה‬ ‫להגדרת‬ ‫בצמוד‬
‫ה‬ ‫מסמך‬ ‫גם‬-javadoc.‫בהתאם‬ ‫יעודכן‬
‫דריסה‬ ‫לבצע‬ ‫ננסה‬ ‫כאשר‬ ‫כאלו‬ ‫במקרים‬ ‫ניתקל‬ ‫אנו‬ ‫לרוב‬-Override‫כ‬ ‫שהוגדרה‬ ‫מתודה‬ ‫של‬-Deprecated.

More Related Content

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

  • 2. ‫מתודות‬-Methods ‫ובאותו‬ ‫מחלקה‬ ‫לאף‬ ‫שייכת‬ ‫לא‬ ‫מתודה‬ ‫בו‬ ‫מצב‬ ‫ייתכן‬ ‫לא‬ ,‫כלומר‬ ,‫בדיוק‬ ‫אחת‬ ‫למחלקה‬ ‫להשתייך‬ ‫חייבת‬ ‫בג'אווה‬ ‫מתודה‬ ‫כל‬ .‫אחת‬ ‫ממחלקה‬ ‫ליותר‬ ‫שייכת‬ ‫מתודה‬ ‫בו‬ ‫מצב‬ ‫ייתכן‬ ‫לא‬ ,‫האופן‬ ,‫המתודה‬ ‫אותה‬‫ואין‬ ‫המחלקה‬ ‫של‬ ‫ההכרה‬ ‫מרחב‬ ‫בתוך‬ ‫והוגדרה‬ ‫הוצהרה‬ ‫שהיא‬ ‫בכך‬ ‫אליה‬ ‫משתייכת‬ ,‫למחלקה‬ ‫המשתייכת‬ .‫לה‬ ‫מחוצה‬ ‫והגדרה‬ ‫המחלקה‬ ‫בתוך‬ ‫המתודה‬ ‫על‬ ‫הצהרה‬ ‫לבצע‬ ‫אחרות‬ ‫בשפות‬ ‫כמו‬ ‫אפשרות‬ getters & setters ‫שיותר‬ ‫כמה‬ ‫להגדיר‬ ‫נעדיף‬ ‫אנו‬ ,‫שלנו‬ ‫המופע‬ ‫למשתני‬ ‫ישירה‬ ‫גישה‬ ‫מתבצעת‬ ‫בו‬ ‫מצב‬ ‫למנוע‬ ‫ע"מ‬‫כמשתנים‬ ‫שלנו‬ ‫מהמשתנים‬ ‫גישה‬ ‫מציין‬ ‫בעלי‬private‫בהתאם‬ ‫וזאת‬ ‫ולצפייה‬ ‫לעדכון‬ ‫המשתנה‬ ‫של‬ ‫חשיפה‬ ‫לאפשר‬ ‫מעוניינים‬ ‫כן‬ ‫אנו‬ ,‫זאת‬ ‫עם‬ . ‫מתודות‬ .‫להגדרתנו‬get‫ו‬-set‫מה‬ ‫את‬ ‫רק‬ ‫רואה‬ ‫שהלקוח‬ ‫כזה‬ ‫באופן‬ ‫שלנו‬ ‫המופע‬ ‫למשתני‬ ‫ממוסכת‬ ‫גישה‬ ‫לנו‬ ‫מאפשרות‬ ‫את‬ ‫רק‬ ‫ומשנה‬ ‫יראה‬ ‫שהוא‬ ‫רוצים‬ ‫שאנחנו‬‫לכתוב‬ ‫ניתן‬ ,‫לדוגמה‬ .‫אותו‬ ‫שישנה‬ ‫רוצים‬ ‫אנו‬ ‫בו‬ ‫ובאופן‬ ‫שישנה‬ ‫רוצים‬ ‫שאנחנו‬ ‫מה‬ ‫מתודת‬set‫לקרות‬ ‫שעלולות‬ ‫שונות‬ ‫שגיאות‬ ‫למנוע‬ ‫ובכך‬ ,‫ההשמה‬ ‫בטרם‬ ‫הקלט‬ ‫נכונות‬ ‫ובדיקת‬ ‫קלט‬ ‫מסכת‬ ‫מכילה‬ ‫אשר‬ .‫למשתנה‬ ‫ישירה‬ ‫גישה‬ ‫מאפשרים‬ ‫היינו‬ ‫באם‬ ‫להתקיים‬ ‫היה‬ ‫יכול‬ ‫שלא‬ ‫דבר‬ ,‫הדרך‬ ‫במהלך‬ ‫כללי‬ ‫הגדרה‬‫למתודות‬ ‫ת‬get‫ו‬-set: public class GetnSet { private varType varName; public varType getVarName() { return varName; } public void setVarName(varType varName) { this.varName = varName; } } :‫הנ"ל‬ ‫מהמתודות‬ ‫אחת‬ ‫לכל‬ ‫מעשית‬ ‫דוגמה‬ ‫נביא‬ get()–‫שלנו‬ ‫ובמחלקה‬ ‫נניח‬Car‫משתנה‬ ‫קיים‬ ,price‫לסוחר‬ ‫שעלתה‬ ‫כפי‬ ,‫נטו‬ ‫המכונית‬ ‫מחיר‬ ‫את‬ ‫מכיל‬ ‫זה‬ ‫משתנה‬ . ‫רווח‬ ‫אחוז‬ ‫הוספת‬ ‫ע"י‬ ‫צרכן‬ ‫מחיר‬ ‫לייצר‬ ‫ברצונו‬ ,‫בפועל‬ ‫למחיר‬ ‫ישירה‬ ‫גישה‬ ‫לספק‬ ‫מעוניין‬ ‫אינו‬ ,‫הסוחר‬ ‫אותו‬ ‫אך‬ ,‫המכוניות‬ ‫ת‬ ‫כמה‬ ‫יידע‬ ‫שהלקוח‬ ‫כך‬ ,‫רישוי‬ ‫ואגרת‬ ‫ייבוא‬ ‫עלויות‬ ,‫מסוים‬.‫ההוצאות‬ ‫כל‬ ‫לאחר‬ ‫המכונית‬ ‫לו‬ ‫עלה‬ ‫המשתנה‬ ‫את‬ ‫להגדיר‬ ‫נוכל‬ ,‫כאלו‬ ‫במקרים‬price‫גישה‬ ‫מציין‬ ‫עם‬ ‫במשתנה‬private‫הלוגיקה‬ ‫את‬ ‫ולהכניס‬ ,-‫לחישוב‬ ‫הנוסחה‬ ‫מתודה‬ ‫לתוך‬ ‫הסופי‬ ‫המחיר‬public‫בשם‬getPrice()‫המניפולציות‬ ‫את‬ ‫עליו‬ ‫שתעשה‬ ‫לפני‬ ‫לא‬ ,‫המחיר‬ ‫את‬ ‫תחזיר‬ ‫זו‬ ‫מתודה‬ . ‫או‬ ‫עפ"י‬ ‫הדרושות‬.‫הסוחר‬ ‫תו‬ set(varType var)–‫איננו‬ .‫המכונית‬ ‫מחיר‬ ‫את‬ ‫להזין‬ ‫לסוחר‬ ‫לאפשר‬ ‫מעוניינים‬ ‫אנו‬ ‫בו‬ ‫מקרה‬ ‫וניקח‬ ,‫הדוגמה‬ ‫אותה‬ ‫עם‬ ‫נמשיך‬ ‫זה‬ ‫מסוג‬ ‫וטעויות‬ ‫במתכוון‬ ‫שלא‬ ‫לקרות‬ ‫עלולה‬ ‫שגויה‬ ‫הזנה‬ ,‫לעתים‬ .‫למשתנה‬ ‫ישירה‬ ‫גישה‬ ,‫לו‬ ‫לא‬ ‫אפילו‬ ,‫לאפשר‬ ‫מעוניינים‬ ‫כ‬ ‫גם‬ .‫שלמה‬ ‫תכנית‬ ‫להפיל‬ ‫עלולות‬‫למשתנה‬ ‫שהגישה‬ ‫נוודא‬ ‫אן‬price‫הינה‬private‫מתודה‬ ‫וניצור‬setPrice(int price)‫עם‬ ‫הרשאת‬public,‫שליליים‬ ‫ערכים‬ ‫של‬ ‫הזנה‬ ‫נמנע‬ ,‫לדוגמה‬ .‫לסנן‬ ‫שברצוננו‬ ‫הטעויות‬ ‫כל‬ ‫למניעת‬ ‫הלוגיקה‬ ‫כל‬ ‫את‬ ‫נכניס‬ ‫בה‬ , ‫וכו‬ ‫למחיר‬ ‫מקסימום‬ ‫רף‬ ‫נקבע‬'.
  • 3. ‫המתודות‬ ‫של‬ ‫למימוש‬ ‫דוגמה‬ ‫נראה‬set()‫ו‬-get(): public class Car { private int price; private int customerPrice; private int customs; private int tax; private int registration; public int getCustoms() { return customs; } public void setCustoms(int customs) { this.customs = customs; } public int getTax() { return tax; } public void setTax(int tax) { this.tax = tax; } public int getRegistration() { return registration; } public void setRegistration(int registration) { this.registration = registration; } private int getRealPrice() { return price; } public void setPrice(int price) { if (price<0) System.out.println("Negative value not allowed!"); else if (price>100000) System.out.println("Can't afford to buy at more than 100,000!"); else { this.price = price; setCustomerPrice(price); } } private void setCustomerPrice(int price) { customerPrice = price+getTax()+getCustoms()+getRegistration(); } public int getPrice() { if (getRealPrice()==0) System.out.println("Price calculated without purchase price"); if (getRegistration()==0) System.out.println("Price calculated without registration fees"); if (getTax()==0) System.out.println("Price calculated without tax amount"); if (getCustoms()==0) System.out.println("Price calculated without customs fees"); return customerPrice; } }
  • 4. :‫הנ"ל‬ ‫הקוד‬ ‫מדוגמת‬ ‫המעניינות‬ ‫מהנקודות‬ ‫למעט‬ ‫נתייחס‬ ‫כעת‬ ‫כ‬ ‫הוגדרו‬ ‫כולם‬ ‫המשתנים‬-private‫יש‬ ‫משתנה‬ ‫של‬ ‫ערכו‬ ‫את‬ ‫לעדכן‬ ‫ע"מ‬ ,‫כזה‬ ‫באופן‬ ,‫כאמור‬ .‫אליהם‬ ‫ישירה‬ ‫גישה‬ ‫למנוע‬ ‫ע"מ‬ ‫במתודת‬ ‫לעבור‬ ‫צורך‬set.‫צורך‬ ‫בכך‬ ‫יש‬ ‫אם‬ ,‫המוזנים‬ ‫הערכים‬ ‫לגבי‬ ‫חוקיות‬ ‫שהגדירה‬ ‫המתודות‬ ‫הוגדרו‬ ,‫כן‬ ‫כמו‬setCustomerPrice,getRealPrice‫כ‬-private‫הצרכן‬ ‫מחיר‬ ‫של‬ ‫ידנית‬ ‫הזנה‬ ‫למנוע‬ ‫רצון‬ ‫מתוך‬ ‫הוא‬ ,‫שהוזן‬ ‫מרגע‬ .‫המכונית‬ ‫של‬ ‫הבסיס‬ ‫מחיר‬ ‫לגבי‬ ‫מידע‬ ‫קבלת‬ ‫למנוע‬ ‫ורצון‬ ,)‫גורמים‬ '‫ממס‬ ‫(מורכב‬ ‫המכונית‬ ‫של‬‫לא‬ ‫כבר‬ .‫קיימות‬ ‫הן‬ ‫ולכן‬ ‫המחלקה‬ ‫הגדרת‬ ‫בתוך‬ ‫גם‬ ‫אלו‬ ‫במתודות‬ ‫שימוש‬ ‫לעשות‬ ‫נרצה‬ ‫אנו‬ ,‫זאת‬ ‫עם‬ ‫יחד‬ .‫עבורנו‬ ‫יותר‬ ‫רלוונטי‬ ‫המתודה‬setPrice‫ל‬ ‫לקבוע‬ ‫שניתן‬ ‫הערכים‬ ‫טווח‬ ‫את‬ ‫מגבילה‬price-‫גישה‬ ‫מאפשרים‬ ‫היינו‬ ‫אם‬ ‫מתאפשר‬ ‫היה‬ ‫שלא‬ ‫דבר‬ , ‫והמתודה‬ ,‫למשתנה‬ ‫ישירה‬getPrice‫את‬ ‫בכלל‬ ‫מחזירה‬‫המשתנה‬ ‫של‬ ‫ערכו‬customerPrice‫של‬ ‫ערכו‬ ‫את‬ ‫ולא‬price‫כפי‬ .‫לצפות‬ ‫אולי‬ ‫היה‬ ‫שניתן‬ ‫היכולות‬ ‫כל‬ ‫את‬ ‫מאבדים‬ ‫בעצם‬ ‫אנו‬ ‫למשתנים‬ ‫ישירה‬ ‫שבגישה‬ ,‫הנקודה‬ ‫את‬ ‫לחדד‬ ‫ע"מ‬ ‫בכוונה‬ ‫כזה‬ ‫באופן‬ ‫זו‬ ‫דוגמה‬ ‫הראיתי‬ ‫שלנו‬ ‫המשתנים‬ ‫בו‬ ‫ובאופן‬ ‫בנעשה‬ ‫שולטים‬ ‫אנו‬ ,‫מתודות‬ ‫דרך‬ ‫הגישה‬ ‫במתן‬ ,‫שלעיל‬ ‫שהוצגו‬.‫ומעודכנים‬ ‫מוצגים‬ ‫לגשת‬ ‫יהיה‬ ‫ניתן‬ ‫שלא‬ ‫כך‬ ,‫מופע‬ ‫למשתני‬ ‫הגישה‬ ‫להסתרת‬ ‫מוחלט‬ ‫כמעט‬ ‫באופן‬ ‫שנשאף‬ ‫ע"מ‬ ‫מספיקות‬ ‫לעיל‬ ‫שהוצגו‬ ‫הסיבות‬ .‫המחלקה‬ ‫לגבולות‬ ‫מחוץ‬ ‫ישירה‬ ‫בצורה‬ ‫אליהם‬ :‫המחלקה‬ ‫הגדרת‬ ‫בתוך‬ ‫בהן‬ ‫שימוש‬ ‫תוך‬ ‫הפעם‬ ,‫שכאלו‬ ‫במתודות‬ ‫לשימוש‬ ‫מהותית‬ ‫סיבה‬ ‫נציג‬ ,‫כעת‬ ‫על‬ ‫שמירה‬maintainability–‫קלה‬ ‫קוד‬ ‫תחזוקת‬ ‫המשתנה‬ ‫על‬ ‫לדבר‬ ‫רצינו‬ ‫בו‬ ‫בקוד‬ ‫מקום‬ ‫ובכל‬ ‫קוד‬ ‫שורות‬ ‫אלפי‬ ‫על‬ ‫משתרעת‬ ‫שלנו‬ ‫שהתוכנית‬ ‫נניח‬number‫תוך‬ ‫זאת‬ ‫עשינו‬ , ‫שהוגדרו‬ ‫למשתנים‬ ‫לפנות‬ ‫יכולים‬ ‫אנו‬ ,‫כך‬ ‫ובשל‬ ,‫שלנו‬ ‫המחלקה‬ ‫הגדרת‬ ‫בתוך‬ ‫נמצאים‬ ‫אנו‬ ‫(הרי‬ ‫המשתנה‬ ‫בשם‬ ‫ישירה‬ ‫קריאה‬ ‫כ‬-private‫"מ‬.)‫עתה‬ ‫זה‬ ‫מגדירים‬ ‫שאנו‬ ‫המחלקה‬ ‫של‬ ‫ההכרה‬ ‫בטווח‬ ‫נמצאים‬ ‫שאנחנו‬ ‫עוד‬ ‫כל‬ "‫חשש‬ ‫בלי‬ ‫שהמתודה‬ ‫גם‬ ‫נניח‬getNumber()‫המשתנה‬ ‫של‬ ‫ערכו‬ ‫את‬ ‫מחזירה‬ ‫בסה"כ‬ ,number‫מה‬ ‫כל‬ ‫אם‬ ,‫ולכן‬ ,‫דבר‬ ‫שום‬ ‫למסך‬ ‫מבלי‬ ‫לכתוב‬ ‫מיותר‬ ‫כמאמץ‬ ‫נראה‬ ,‫המשתנה‬ ‫של‬ ‫ערכו‬ ‫את‬ ‫למשל‬ ‫להדפיס‬ ‫זה‬ ‫לעשות‬ ‫רוצים‬ ‫שאנחנו‬println(getNumber())‫במקום‬ ‫לכתוב‬ ‫פשוט‬println(number). ‫יכולנו‬ ‫ושאכן‬ ‫טובה‬ ‫תשובה‬ ‫באמת‬ ‫שאין‬ ‫הראשוני‬ ‫האינסטינקט‬ ‫אומר‬ ,‫זה‬ ‫מסוג‬ ‫שאלה‬ ‫על‬ ‫לענות‬ ‫נדרשים‬ ‫אנו‬ ‫בהם‬ ‫במקרים‬ ?...‫יותר‬ ‫הפשוטה‬ ‫המקוצרת‬ ‫בדרך‬ ‫לא‬ ‫למה‬ ‫אז‬ ,‫הדבר‬ ‫כך‬ ‫ואם‬ ‫שקול‬ ‫באופן‬ ‫הצורות‬ ‫בשתי‬ ‫להשתמש‬ ‫ע‬ ‫לדבר‬ ‫הזמן‬ ‫בדיוק‬ ‫כאן‬:"‫קוד‬ ‫"תחזוקת‬ ‫שנקרא‬ ‫הנושא‬ ‫ל‬ ‫זאת‬ ‫שעשינו‬ ‫ונניח‬ ‫הקוד‬ ‫רצף‬ ‫בתוך‬ ‫ישירות‬ ‫המשתמש‬ ‫בשם‬ ‫השתמשנו‬ ‫שאכן‬ ‫נניח‬055‫לנו‬ ‫והתגלה‬ ‫נניח‬ ,‫כן‬ ‫כמו‬ .‫פעמים‬ ‫של‬ ‫ערכו‬ ‫את‬ ‫להדפיס‬ ‫פונים‬ ‫שאנו‬ ‫פעם‬ ‫בכל‬ ‫צריכים‬ ‫שאנחנו‬number+ ‫ערכו‬ ‫את‬ ‫להדפיס‬ ,1. ,‫התכנית‬ ‫את‬ ‫להדר‬ ‫שנוכל‬ ‫ע"מ‬ ,‫שתיארתי‬ ‫להנחות‬ ‫בהתאם‬‫כתבנו‬ ‫בו‬ ‫מקום‬ ‫לכל‬ ‫לגשת‬ ‫צורך‬ ‫יש‬number‫ל‬ ‫ולשנות‬-number +1. ‫מתודת‬ ‫אותה‬ ‫דרך‬ ‫ורק‬ ‫אך‬ ‫למשתנה‬ ‫לפנות‬ ‫יהיה‬ ,‫זו‬ ‫לבעיה‬ "‫"מיינטיינאבילי‬ ‫פתרון‬getNumber()‫ב‬ ‫שיופיע‬ ‫שבמקום‬ ‫כך‬ ,-055 ‫המשתנה‬ ‫שם‬ ‫מקומות‬number,‫ב‬ ‫תופיע‬-055‫למתודה‬ ‫הקריאה‬ ‫מקומות‬getNumber()‫של‬ ‫ערכו‬ ‫את‬ ‫שמחזירה‬‫המשתנה‬ number‫של‬ ‫הלוגיקה‬ ‫בתוך‬ ‫אותו‬ ‫לבצע‬ ‫נוכל‬ ,‫הנ"ל‬ ‫השינוי‬ ‫של‬ ‫במקרה‬ ‫שגם‬ ‫כך‬ ,getNumber()‫שתחזיר‬ ‫כך‬ ,‫בדיוק‬ ‫אחת‬ ‫פעם‬ number +1‫במקום‬number.‫התכנית‬ ‫בשאר‬ ‫דבר‬ ‫לשנות‬ ‫מבלי‬
  • 5. ‫מחלקה‬ ‫מתודות‬–‫סטטיות‬ ‫מתודות‬–Static Methods ‫השמורה‬ ‫המילה‬ ‫תתווסף‬ ‫ההגדרה‬ ‫לשורת‬ ,‫המשתנה‬ ‫להגדרת‬ ‫בדומה‬ ‫תיעשה‬ ‫סטטית‬ ‫מתודה‬ ‫הגדרת‬static‫ערך‬ ‫לפני‬ :‫הבא‬ ‫באופן‬ .‫הגישה‬ ‫מציין‬ ‫ואחרי‬ ‫המתודה‬ ‫של‬ ‫החזרה‬ public static void staticMethod() { } ‫המח‬ ‫לשם‬ ‫ישירה‬ ‫פניה‬ ‫ע"י‬ ‫או‬ ‫קיים‬ ‫אובייקט‬ ‫ע"י‬ ,‫המתודה‬ ‫את‬ ‫להפעיל‬ ‫ניתן‬ ,‫כאן‬ ‫גם‬‫אובייקטים‬ ‫כלל‬ ‫נוצרו‬ ‫לא‬ ‫אם‬ ‫גם‬ ,‫לקה‬ :‫מהמחלקה‬ car1.staticMethod(); //Method call via an instance Car.staticMethod(); //Method call via Class name ‫המתודה‬ ‫את‬ ‫כדוגמה‬ ‫לראות‬ ‫ניתן‬main‫מאותה‬ ‫אובייקט‬ ‫יצרנו‬ ‫לא‬ ‫אם‬ ‫גם‬ ‫כאפליקציה‬ ‫המחלקה‬ ‫את‬ ‫להריץ‬ ‫ניתן‬ .‫תכנית‬ ‫בכל‬ ‫של‬ ‫להיותה‬ ‫הודות‬ ‫לנו‬ ‫מתאפשר‬ ‫זה‬ .‫המחלקה‬main!‫סטטית‬ ‫המתודה‬ ‫מוגדרת‬ ‫בה‬ ‫במחלקה‬ ‫מופע‬ ‫משתנה‬ ‫על‬ ‫נצהיר‬ ‫אם‬ ,‫לעיל‬ ‫שצוינו‬ ‫הסיבות‬ ‫מאותן‬main‫אפשרות‬ ‫לנו‬ ‫שאין‬ ‫נבחין‬ , ‫זאת‬ ,‫הסטטית‬ ‫המתודה‬ ‫דרך‬ ‫אליו‬ ‫לגשת‬.‫האובייקט‬ ‫שנוצר‬ ‫לפני‬ ‫עוד‬ ‫קיימת‬ ‫הזו‬ ‫והמתודה‬ ‫היות‬ ‫על‬ ‫לדבר‬ ‫ניתן‬ ‫לא‬ ‫גם‬ ‫האופן‬ ‫באותו‬this‫קיימת‬ ‫הסטטית‬ ‫שהמתודה‬ ‫שאמרנו‬ ‫והרי‬ ‫הנוכחי‬ ‫לאובייקט‬ ‫רפרנס‬ ‫מציין‬ ‫הוא‬ ‫שהרי‬ , .‫מסוים‬ ‫באובייקט‬ ‫תלות‬ ‫מבלי‬ .‫לדריסה‬ ‫ניתנות‬ ‫לא‬ ‫סטטיות‬ ‫מתודות‬ ‫סופיות‬ ‫מתודות‬–Final Methods ‫א‬ ‫למנוע‬ ‫ניתן‬‫לעשות‬ ‫האפשרות‬ ‫ת‬Overriding‫הוספת‬ ‫ע"י‬ ‫למתודה‬final:‫להגדרתה‬ public final void FinalMethod() { } .‫יורשת‬ ‫במחלקה‬ ‫מחדש‬ ‫להגדרה‬ ‫ניתנם‬ ‫תהיה‬ ‫לא‬ ‫היא‬ ,‫זה‬ ‫באופן‬ ‫תוגדר‬ ‫שמתודה‬ ‫מרגע‬ ‫היות‬ ,‫בביצועים‬ ‫ניכר‬ ‫שיפור‬ ‫גם‬ ‫יש‬ ,)‫המתודה‬ ‫פעולת‬ ‫אופי‬ ‫שינוי‬ ‫(מניעת‬ ‫הברור‬ ‫היתרון‬ ‫מלבד‬,‫כסופית‬ ‫מוגדרת‬ ‫שמתודה‬ ‫ובכך‬ .‫להשתמש‬ ‫יש‬ ‫מתודה‬ ‫של‬ ‫גרסה‬ ‫באיזו‬ ‫ריצה‬ ‫בזמן‬ ‫הבדיקה‬ ‫נחסכת‬ ‫זמנן‬ ‫שעבר‬ ‫מתודות‬–Deprecated Methods .‫למיושנות‬ ‫הפכו‬ ‫השפה‬ ‫של‬ ‫התחדשות‬ ‫שבעקבות‬ )‫מחלקות‬ ‫(או‬ ‫מתודות‬ ‫לעשות‬ ‫ניתן‬ ‫הפקודה‬ ‫שורת‬ ‫דרך‬ ‫מהדרים‬ ‫אם‬ .‫אזהרה‬ ‫הודעת‬ ‫תינתן‬ ‫כאלה‬ ‫במתודות‬ ‫שימוש‬ ‫בעת‬‫של‬ ‫הוספה‬ ‫ע"י‬ ‫זאת‬ -deprecation‫הפקודה‬ ‫הרצת‬ ‫בעת‬javac.‫בנושא‬ ‫מידע‬ ‫ולקבל‬ ‫באנוטציה‬ ‫להשתמש‬ ‫ניתן‬@Deprecated,‫זה‬ ‫מסימון‬ ‫כתוצאה‬ .‫ככאלו‬ ‫אותן‬ ‫לסמן‬ ‫וכך‬ ‫המתודה‬ ‫או‬ ‫המחלקה‬ ‫להגדרת‬ ‫בצמוד‬ ‫ה‬ ‫מסמך‬ ‫גם‬-javadoc.‫בהתאם‬ ‫יעודכן‬ ‫דריסה‬ ‫לבצע‬ ‫ננסה‬ ‫כאשר‬ ‫כאלו‬ ‫במקרים‬ ‫ניתקל‬ ‫אנו‬ ‫לרוב‬-Override‫כ‬ ‫שהוגדרה‬ ‫מתודה‬ ‫של‬-Deprecated.