
click שמקבלת שם של כפתור ומדפיסה שהיא לוחצת עליו. בשלב הזה היא רק מדמה את הלחיצה.highlight. אם הערך true, המתודה מדפיסה גם שהיא מדגישה את הכפתור לפני הלחיצה.Ctrl+Shift+F מיישר את הקוד באקליפס.הטקסט המלא של הדקות הראשונות בהרצאה «methods overloading» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, בסרטון הקרוב נדבר על תכונה נוספת שאנחנו צריכים להכיר בסביבת הג'אווה שלנו על מנת לעבוד בצורה טובה וקלה עם הג'אווה ולכתוב טסטים אוטומטיים.
תכונה של הג'אווה היא אוברלואודינג של מתודות, אנחנו יכולים לבצע אוברלואודינג. מה זה בעצם אוברלואודינג? בואו נדבר על זה קצת.
התכונה של אוברלואודינג בג'אווה היא בעצם היכולת שלנו לעשות כמה מתודות לכאורה עם אותו שם אבל עם מספר פרמטרים או סוג פרמטרים אחר בהכרזה על המתודה, תכף אנחנו נראה דוגמא ונסביר בדיוק מה זה מאפשר לנו, זה מאפשר לנו בעצם במקום לתקן מתודות ואז לתקן את הקוד שלנו במהלך כל הסביבת כתיבה שלנו, כל הטסטים שלנו,
אנחנו יכולים להוסיף לכאורה מתודה נוספת עם אותו שם שכבר השתמשנו, רק לשנות את הערכים שאנחנו שולחים מבחינת סוג הערכים והכמות שלהם, ותכף אני אסביר את זה.
בואו ניגש לדוגמה ונראה בדיוק למה אני מתכוון כשאני אומר Overloading ב-Java. אם כן, בואו נראה דוגמה של עיקרון ה-Overloading ב-Java.
אז אנחנו ניצור לעצמנו פקאג' בתוך פרויקט פרקטיס מתודס ויש לי פה פקאג' פרקטיס שבע אני עושה מקש ימני New Class ואני אקרא לזה Overloading Practice אז תמיד בתחילת קלאס האות הראשונה הגדולה Overloading Practice אוקיי, ואני אציין את הפאביק סטטיק ווייד מיין בקלאס שלי.
אני אעשה פה איזשהו סיסו של הדפסה ונכתוב I. אוקיי, ועכשיו בוא נניח שאנחנו רוצים ליצור איזושהי מתודה שמדמה לחיצה על כפתור. כרגע היא לא תבצע את זה, אבל ככל שאנחנו נכיר יותר ויותר את סביבת הבדיקות שלנו, אנחנו נראה שזו מתודה בסיסית לתהליך הבדיקות שלנו, אבל כרגע אנחנו רק נדמה אותה.
היא תדפיס כאילו היא לוחצת על כפתור אבל לא באמת תלחץ, אז בואו נעשה את המתודה הזאת, היא public, היא static, מתודה פשוטה בג'אווה תמיד תהיה static והיא לא תחזיר שום דבר אז היא תהיה void והשם שלה יהיה click, מתודה מתחילה באותה קטנה בלואור קייס והפרמטר שהיא תקבל יהיה סטרינג וזה יהיה bottom
name, זאת אומרת אני רוצה שיהיה לי איזשהו נתון על הכפתור שהיא הולכת לבצע את הלחיצה עליו אוקיי ונעשה פה הדפסה שמדמה לחיצה סיסו going to click button by name נקודותיים ופה נשרשר את השם של ה-button אני עושה control space הוא משלים לי את השם של הכפתור אם כן יש לנו את המתודה בואו נפעיל אותה הידר ואנחנו יכולים
אה... לבצע עכשיו את הקריאה על המתודה, בואו נקרא לה, קליק, טוספייס, משלים לנו, והכפתור יהיה אגרי. שם הכפתור יהיה אגרי, איזשהו כפתור שנקרא אגרי, ואנחנו מפעילים אותו על ידי לחיצה על ה-run method, run class, ויש לנו את השורה הראשונה, והשורה השנייה, going to click button by name.
אוקיי, אז המתודה הראשונה ביצעה את הפעולה שציפינו וזה השם של הכפתור והיא לחצה עליו. נניח שאנחנו רוצים ליצור מתודה נוספת שלא רק עושה קליק אלא גם עושה איילייט לפעולה שלה לפני הקליק, זאת אומרת היא מאירה לנו את הכפתור שהיא הולכת ללחוץ עליו, אנחנו נראה את זה בהמשך הקורס את פעולת האיילייט שאנחנו יכולים לבצע על אלמנטים בדף שאנחנו
אותו בודקים בדפדפן. אז בואו נגיד שאנחנו רוצים לשלב את פעולת ה-highlight במתודה שלי. אז אפשרות אחת היא בעצם לשנות את המתודה הקיימת וללחוץ פה בוליאן, היילייט, ובעצם הכנסתי עוד פרמטר למתודה הקיימת ואנחנו
רואים פה שכבר הקריאה הקיימת למתודה היא לא חוקית אז כרגע זה לא בעיה כי יש לנו קריאה אחת ומתודה אחת אז אנחנו יכולים לשנות ולעשות פה איזשהו קריאה למשתנה בוליאני ולעשות את המתודה את הקריאה למתודה שוב חוקית אבל נניח שאני לא רוצה לגעת אלא אני רוצה לא לפגוע בדברים שכבר עשיתי אז האפשרות שג'אווה מציעה לי זה לעשות Overloading
למתודה הקיימת. מה זאת אומרת? אני מעתיק את המתודה הקיימת, עושה Paste, אני אעשה Ctrl+Shift+F, Ctrl+Shift+F מיישר לי את הקוד באקליפס, ואנחנו רואים שיש פה מצב לא חוקי של שני מתודות עם אותו שם.
אבל ברגע שאני מוסיף שם או משתנה שאני רוצה להשתמש בו במתודה, מתודה כבר חוקית. מבחינת הג'אווה, ברגע שהוספנו משתנה, השתמשנו בעיקרון ה-overloading ובעצם אין התנגשות בין המתודות.