
calculateAverage מהקלאס הראשי, ומדביקים אותה בקלאס חדש בשם methods. ללא מתודת main הקלאס לא ניתן להרצה, וזה תקין, כי הוא מכיל רק מתודות. בקלאס הראשי כותבים את ה-import שמאפשר לזהות את המתודה, והקריאה מתבצעת כמו קודם. כך המתודה נשארת קיימת ונקראת מכל מקום בפרויקט.static אומר שאין צורך ליצור אובייקט מהקלאס כדי לקרוא למתודה, אפשר לקרוא לה ישירות. הדיפולט של Java הוא מתודה דינמית, שמתוארת בשיעורים מתקדמים יותר.getMyName() עם return של שם.return. למשל printMyName() מדפיסה את השם בעצמה.System.out.println(methods.getMyName()).הטקסט המלא של הדקות הראשונות בהרצאה «methods - חלק 2» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום בשיעור הקודם התחלנו להכיר מתודות והשימוש בהן ראינו שאנחנו יכולים להשתמש במתודה על מנת לייצא קוד שלנו ובעצם להשתמש בו שוב ושוב על ידי קריאה למתודה ממתודת ההרצאה שלנו הסטטיק רויד מיין היום אנחנו נמשיך את זה ונגיד כמה דברים על מתודות ונעשה עוד דוגמא איך אני יכול להשתמש במתודה
מחוץ למיין קלאס שלי בואו נראה קצת דוגמא לגבי הפעולה הזאת בשיעור הקודם עשינו דמו קצר שבעצם יצרנו כאן את המתודה של Calculate Average וראינו שהיא נמצאת מתחת למתודת הרצה שלי הפאביק סטטיק ווייד ביין שלי מה אנחנו בעצם רוצים לעשות אנחנו רוצים לנתק את המיקום הפיזי של המתודה אני אעשה קונטרול איקס פה מהמתודת הרצה שלנו מהקלאס
הראשי שלנו אוקיי אנחנו רואים שברגע שעשיתי cut לקוד שלנו אז יש לו הודעת שגיאה, הוא לא מכיר את המתודה, הוא לא מוצא אותה על ג'אווה, ולכן אנחנו צריכים למקם אותה איפשהו.
אז הדבר הפשוט ביותר זה למקם את המתודה שלנו בקלאס שנמצא במקום אחר בפרויקט. אנחנו יוצרים פה קלאס, ונקרא לו methods, ואנחנו לא מציינים את הפרויקט static void man, כי לא תהיה קלאס הרצה בפני עצמו, אלא הוא יהיה קלאס רק שיכין מתודות, ופה אני עושה את ההדבקה של המתודה שלי, אוקיי?
זה שהיא Calculate Average, אני לא יכול להריץ כמובן את הקלאס הזה, אם אני רוצה להריץ אותו, הוא אומר לי שהוא לא יכול, הג'אווה לא מזהה מה אפליקאבל מבחינתו, כי אין לו את המתודה Public Static Void Main.
אוקיי, אז יש לי את המתודה שלי של Calculate Average, של הריי, שיושבת בקלאס מתודס וסמוך לקלאס של הפרקטיס אחד. וכרגע יש לי הודעת שגיאה מהג'אבה, אנחנו רואים את ה-X האדום הזה, שהוא לא מוצא את המתודה שלי. על מנת שהוא יזהה את המתודה שלי, אני צריך לבצע פעולה שנקראת אימפורט.
ואני אומר practice1, זה בעצם הכתובת של המתודות, הקלאס מתודות שלי, ואני משלים את הפעולה. זאת אומרת, אני עושה אימפורט לפעולת, לקלאס של המתודות על מנת שהמתודות בתוכו יזוהו בקלאס הראשי שלי וכאן אני יכול לעשות את הקריאה ואת השימוש בקלאס שהצהרתי אני פוחד קונטרול
פייסט ומדביק את הקריאה וככה אני בעצם דואג שהמתודה שכתבתי Calculate Average תהיה מזוהה אוקיי אז בגלל שיצרתי מתודה פשוטה מסוג static אין שום בעיה לקרוא לה ולהשתמש בה במהלך הג'אווה.
זה בגדול הפעולה של לייצא את הקוד בואו נריץ את זה ונראה שהכל עובד כמו שצריך אנחנו רואים שהקוד מזוהה התהליך עובר בין practice אחד למתודות ובעצם זרקנו את המתודות שלנו בקלאס חיצוני.
בואו נדבר קצת על הנושא של ה static method static מתוד מבחינת הג'אווה זה אומר מתודה שהיא סטטית שהיא לא צריכה שאנחנו נעשה אינסטנט לקלאס שבו היא קיימת אנחנו נדבר אינסטנט ואיך אנחנו עושים בעצם מופע של קלאסים בהמשך כרגע רק אנחנו צריכים להבין כשאנחנו
רוצים לכתוב מתודה פשוטה אנחנו צריכים לציין שהשם שלה הוא סטטיק זאת אומרת היא מסוג סטטיק ולא מסוג דפולטי של ג'אווה הדיפולט של הג'אווה הוא שיהיה דינמי אבל אנחנו כרגע בבסיס רוצים להכיר את המתודה סטטיק ואנחנו נראה דוגמאות של מתודות דינמיות מיד בהמשך עוד דבר שרציתי לדבר עליו הוא ה-Return
Type אנחנו רואים שבמתודה שכתבנו Calculated Average אנחנו אומרים שה-Return Type שלנו הוא Int כמובן שאנחנו יכולים ליצור עוד מתודות ובוא נגיד שהיא תהיה פאבליק, מתודה פאבליק, היא תהיה סטטיק והיא תחזיר סטרינג, אוקיי?
והפעולה שלה זה return my name והיא לא מקבלת שום דבר, היא יכולה לקבל אבל היא לא מקבלת ואני עושה סוגריים מסובסדיים, זאת תהיה המתודה השנייה שלי והיא צריכה להחזיר בעצם סטרינג.
אז אני אעשה פה ופה אני אעשה ריטרנד, הביטוי ריטרנד, שזה מחייב אותנו, בעצם אנחנו חייבים להתאכזר את השם, ואז אנחנו רואים שיש לנו public static, שהיא מחזירה סטרינג, היא מחזירה את מה שיצרנו משתנה מסוג מייניהם, ואנחנו עושים ריטרנד למייניהם אחרי שעשינו לו.
אני שאלה אז בוא נשתמש במתודה שלנו יש לנו את הפאב אקסטייפ טיפול מיין את זה אנחנו נעשה בקומנט נצבע ונלחץ קונטרול סלאש ופה אנחנו רוצים לעשות סיסו ולהשתמש במתודה השנייה שלנו אנחנו צריכים להגיד הוא רואים שאם אני כותב את שם הקלאס שיצרתי בו את המתודות נקודה הוא מציע לי כי האקליפס מציע לי, הוא מזהה את המתודות
שנמצאות בתוך הקלאס הזה ואני רוצה להשתמש ב-Eternate My Name ולהדפיס. אז ראינו דוגמה שפעם אחת שימוש בהחזרת אינטג'ר, פעם אחת שימוש בהחזרת סטרינג והאופציה הנוספת שיש לנו זה בעצם לעשות מתודה שהיא לא מחזירה שום דבר, זאת אומרת אם יצרתי מתודה שמחזירה אינטג'ר ומתודה שמחזירה סטרינג,