PracticU

methods overloading

בלי כתוביותעם כתוביות
PracticU › קורס סלניום בסיסי - בדיקות אוטומטיות - Selenium › methods overloading
מילון מושגים:
מתודה - פונקציה המוגדרת בתוך מחלקה ומתארת פעולה שאובייקטים מאותה מחלקה יכולים לבצע.
פרמטר - ערך שמועבר לפונקציה או לפקודה כקלט, ומשפיע על אופן פעולתן ועל התוצאה שהן מחזירות.
כפתור - רכיב בממשק המשתמש שהמשתמש לוחץ עליו כדי להפעיל פעולה, כמו שליחת טופס או מעבר לדף אחר.
בוליאני - סוג נתונים שיכול לקבל אחד משני ערכים בלבד: אמת (true) או שקר (false).

methods overloading
בשיעור הזה נכיר את עיקרון ה-Overloading בג'אווה: אפשר להגדיר כמה מתודות עם אותו שם, כל אחת עם רשימת פרמטרים אחרת. כך מוסיפים יכולת חדשה בלי לשבור קוד שכבר נכתב, וזה חשוב במיוחד בכתיבת טסטים אוטומטיים.
השלבים העיקריים
1. מתודה בסיסית: מוגדרת מתודה סטטית בשם click שמקבלת שם של כפתור ומדפיסה שהיא לוחצת עליו. בשלב הזה היא רק מדמה את הלחיצה.
2. הוספת אפשרות להדגשה: במקום לשנות את המתודה הקיימת, מעתיקים אותה ומוסיפים פרמטר בוליאני בשם highlight. אם הערך true, המתודה מדפיסה גם שהיא מדגישה את הכפתור לפני הלחיצה.
3. למה זה עובד: ג'אווה מתייחסת לרשימת הפרמטרים, כלומר לסוגם ולמספרם, כחלק משם המתודה. כל עוד הרשימות שונות אין התנגשות, והקריאה הישנה נשארת תקינה.
4. הפעלה: קריאה עם שם הכפתור בלבד מפעילה את הגרסה הראשונה, וקריאה עם שם הכפתור והערך true מפעילה את הגרסה השנייה.
פקודות והגדרות
- Ctrl+Shift+F מיישר את הקוד באקליפס.
שימו לב
כל עוד שתי מתודות זהות גם ברשימת הפרמטרים, אקליפס מסמן שגיאה. הדגשה אמיתית של אלמנטים בדף תיראה בהמשך הקורס.
בסיום השיעור תוכלו להוסיף מתודה עם אותו שם בלי לפגוע בקוד הקיים, ולתרגל את זה בפרויקט שלכם.
השיעור הבא בקורס: classes - חלק 1

פרקי ההרצאה: methods overloading

  1. 00:00

    מה זה Overloading ולמה הוא חשוב

  2. 01:14

    יצירת מחלקת תרגול ל-Overloading

  3. 02:18

    מתודת click לדימוי לחיצה על כפתור

  4. 04:29

    הוספת פרמטר highlight למתודה

  5. 05:45

    Overloading למתודה קיימת בלי לשבור קוד

תמלול ההרצאה: methods overloading

הטקסט המלא של הדקות הראשונות בהרצאה «methods overloading» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

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

  2. 00:16

    תכונה של הג'אווה היא אוברלואודינג של מתודות, אנחנו יכולים לבצע אוברלואודינג. מה זה בעצם אוברלואודינג? בואו נדבר על זה קצת.

  3. 00:25

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

  4. 00:58

    אנחנו יכולים להוסיף לכאורה מתודה נוספת עם אותו שם שכבר השתמשנו, רק לשנות את הערכים שאנחנו שולחים מבחינת סוג הערכים והכמות שלהם, ותכף אני אסביר את זה.

  5. 01:13

    בואו ניגש לדוגמה ונראה בדיוק למה אני מתכוון כשאני אומר Overloading ב-Java. אם כן, בואו נראה דוגמה של עיקרון ה-Overloading ב-Java.

  6. 01:24

    אז אנחנו ניצור לעצמנו פקאג' בתוך פרויקט פרקטיס מתודס ויש לי פה פקאג' פרקטיס שבע אני עושה מקש ימני New Class ואני אקרא לזה Overloading Practice אז תמיד בתחילת קלאס האות הראשונה הגדולה Overloading Practice אוקיי, ואני אציין את הפאביק סטטיק ווייד מיין בקלאס שלי.

  7. 01:58

    אני אעשה פה איזשהו סיסו של הדפסה ונכתוב I. אוקיי, ועכשיו בוא נניח שאנחנו רוצים ליצור איזושהי מתודה שמדמה לחיצה על כפתור. כרגע היא לא תבצע את זה, אבל ככל שאנחנו נכיר יותר ויותר את סביבת הבדיקות שלנו, אנחנו נראה שזו מתודה בסיסית לתהליך הבדיקות שלנו, אבל כרגע אנחנו רק נדמה אותה.

  8. 02:29

    היא תדפיס כאילו היא לוחצת על כפתור אבל לא באמת תלחץ, אז בואו נעשה את המתודה הזאת, היא public, היא static, מתודה פשוטה בג'אווה תמיד תהיה static והיא לא תחזיר שום דבר אז היא תהיה void והשם שלה יהיה click, מתודה מתחילה באותה קטנה בלואור קייס והפרמטר שהיא תקבל יהיה סטרינג וזה יהיה bottom

  9. 02:59

    name, זאת אומרת אני רוצה שיהיה לי איזשהו נתון על הכפתור שהיא הולכת לבצע את הלחיצה עליו אוקיי ונעשה פה הדפסה שמדמה לחיצה סיסו going to click button by name נקודותיים ופה נשרשר את השם של ה-button אני עושה control space הוא משלים לי את השם של הכפתור אם כן יש לנו את המתודה בואו נפעיל אותה הידר ואנחנו יכולים

  10. 03:44

    אה... לבצע עכשיו את הקריאה על המתודה, בואו נקרא לה, קליק, טוספייס, משלים לנו, והכפתור יהיה אגרי. שם הכפתור יהיה אגרי, איזשהו כפתור שנקרא אגרי, ואנחנו מפעילים אותו על ידי לחיצה על ה-run method, run class, ויש לנו את השורה הראשונה, והשורה השנייה, going to click button by name.

  11. 04:24

    אוקיי, אז המתודה הראשונה ביצעה את הפעולה שציפינו וזה השם של הכפתור והיא לחצה עליו. נניח שאנחנו רוצים ליצור מתודה נוספת שלא רק עושה קליק אלא גם עושה איילייט לפעולה שלה לפני הקליק, זאת אומרת היא מאירה לנו את הכפתור שהיא הולכת ללחוץ עליו, אנחנו נראה את זה בהמשך הקורס את פעולת האיילייט שאנחנו יכולים לבצע על אלמנטים בדף שאנחנו

  12. 04:57

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

  13. 05:24

    רואים פה שכבר הקריאה הקיימת למתודה היא לא חוקית אז כרגע זה לא בעיה כי יש לנו קריאה אחת ומתודה אחת אז אנחנו יכולים לשנות ולעשות פה איזשהו קריאה למשתנה בוליאני ולעשות את המתודה את הקריאה למתודה שוב חוקית אבל נניח שאני לא רוצה לגעת אלא אני רוצה לא לפגוע בדברים שכבר עשיתי אז האפשרות שג'אווה מציעה לי זה לעשות Overloading

  14. 05:53

    למתודה הקיימת. מה זאת אומרת? אני מעתיק את המתודה הקיימת, עושה Paste, אני אעשה Ctrl+Shift+F, Ctrl+Shift+F מיישר לי את הקוד באקליפס, ואנחנו רואים שיש פה מצב לא חוקי של שני מתודות עם אותו שם.

  15. 06:12

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

לקורס המלא: קורס סלניום Selenium בסיסי

ההרצאה הקודמת: methods - תרגול

ההרצאה הבאה: classes - חלק 1

הרצאות קשורות מקורסים אחרים

  • Function Overloading
  • הוספת Methods ל-class
  • פעולות ב-structs - כולל mutating methods

קורסים נוספים במסלול

  • קורס מבוא ל-QA - מידע חשוב לבודק תוכנה
  • קורס פוסטמן - Postman - בדיקות לאתרי אינטרנט - API
  • קורס Robot Framework - בדיקות QA ממשק גרפי
  • קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים
  • קורס סלניום מתקדם - CI/CD - Continues Integration
  • קורס מייבן - Maven