
הטקסט המלא של הדקות הראשונות בהרצאה «הורשה בג'אווה - inheritance» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם בשיעור הקרוב נדבר על הורשה בשפת ג'אווה ונראה איך אנחנו יכולים להשתמש בזה לתועלת הפרויקט אוטומציה שלנו פרויקט הטסטים האוטומטיים שלנו בואו נתחיל אז אנחנו רוצים ללמוד על הורשה ואיך אנחנו יכולים להשתמש בה בלימוד התיאוריה של טסטים אוטומטיים בפרויקט שלנו אז ג'אווה והורשה בג'אווה מה זה הורשה בג'אווה בג'אווה קלאסים רבים יכולים להשתמש בקוד של
קלאס מסוים שמוגדר כאב. אני אסביר את זה, יש לנו קוד מסוים שנמצא בקלאס אחד, הרבה קלאסים שמקושרים היררכית אליו והם יכולים לגשת למתודות ולקונסטרקטור ולאובייקטים שנמצאים בתוך האב ולהשתמש בהם שוב ושוב.
כך קוד משותף יכול בעצם להימצא במקום אחד בפרויקט ואנחנו יכולים לעבוד איתו באופן שקוף על ידי שימוש בבנים המקושרים אליו. תכף נראה דוגמה ספציפית של איך אנחנו עושים את זה.
למה ומתי נעשה את זה? מתי נשתמש בהורשה? בפרויקט הבדיקות שלנו נרצה קישוריות בין קלאסים לבין קלאס משותף שיכיל קוד שיכול לעזור להרבה קלאסים אחרים, תכף נדגים דוגמא ספציפית.
לדוגמא, נניח שבפרויקט הבדיקות שלנו, האוטומציה שלנו, יש הרבה דפים, יש דף ללוגין ודף לסרצ' ודף לעדכון פרופיל ועוד הרבה אחרים, ולכולם יש מתודות, אותן מתודות שאנחנו רוצים להשתמש בהן.
זאת אומרת, לכולם יש שדות שאפשר למלא בהם טקסט, לכולם יש כפתורים שאפשר לבצע עליהם קליק וכדומה. ואנחנו נרצה שהפעולות עצמן, הקליק, הטייפ טקסט וכדומה בעצם לא יהיו משוכפלות, אלא אנחנו נבצע על ידי פרמטיזציה שימוש חוזר של המתודות האלה בכל אובייקט ואובייקט בנפרד בדפים,
ובפרויקטיו יהיה איזה קוד משותף שנוכל דרכו לחזור ולהשתמש בקוד שהוא יהיה משותף לכולם. שוב, כמו שאמרתי, תכף נדגים את זה ממש באקליפס בקוד ונראה איך אנחנו עושים את זה.
אז הורשה בשפת Java, כמו שאמרתי, יש לנו class בן, לדוגמה לוגין פייג' עוד class בן, לדוגמה הום פייג' בפרויקט אוטומציה שלנו, כל פייג' יקבל אובייקט משל עצמו אבל הוא יעזר בקלאס נוסף שהוא יהיה האב שלו.
כאן אנחנו רואים עוד child class, profile page וכל האובייקטים האלה יהיו מקושרים ל-parent class, קלאס אחד גדול שיכיל את כל הקוד המשותף לכל האחרים, לכל הדפים האחרים.
אז בואו נתחיל לקודד ונראה איך אנחנו עושים את זה. למה הוא? בואו נראה דוגמא איך אנחנו משתמשים בהורשה בג'אווה ממש בפועל דרך הקוד והאקליפס.
אז הפעולה הראשונה שאני ארצה לעשות זה יצירת פרויקט חדש. אז אני מקיש בחלק הזה של האקליפס, מקש ימני, New ואני מחפש Java Project אם אני לא מוצא אני הולך ל-Adder ופה אני מחפש Java Project ואני בוחר ב-Java Project.
אוקיי, ופה אני יכול לתת את השם של הפרויקט שלי שתמיד יתחיל באות גדולה, פרקטיס, בואו נעשה פרקטיס עם ארטנס אחד כי כבר יצרתי לי אחד כזה קודם לכן ונלחץ פיניש.
בעצם יצר לי Java פרויקט בסביבת האקליפס שלי, אני רואה את ה-JRE ואת ה-SRC, פה מה שאנחנו צריכים ליצור עכשיו זה על ידי מקש אם אני immune, ונקרא לזה practice אוקיי אוקיי יש לי package ריק מתחת לספריית ה src קיצור של source וכרגע מה שאני רוצה לעשות זה להתחיל להדגים שימוש בהורשה אז קודם כל אמרנו שבדוגמה שלנו ניצור כמה אובייקטים
מסוג pages שכל אובייקט כל page הוא יהיה באמת דף אמיתי באפליקציה שלנו נניח שיש לנו אפליקציה שאפשר לבצע בה לוגין ואפשר לעדכן בה את הפרופייל של היוזר שלנו.
אנחנו מכירים כאלה אפליקציות, אפליקציות מסחר אלקטרוני, אתה צריך לבצע לוגין כדי לבצע את הקניות או אתה יכול להיכנס אחרי הלוגין לדף הפרופיל שלך ולעדכן את הכתובת למשלוח וכדומה.
אז אנחנו כרגע בדוגמה שלנו ניצור שני קלאסים שכל אחד מהם ידמה דף במערכת שלנו. אז הדף הראשון כאמור יהיה לוגין פייג'. אוקיי, זה יהיה הקלאס הראשון שלנו, אני לא צריך את הפאבליק סטטיק ווייד מן, אני אפעיל אותו מקלאס מרכזי אחר, ואני לוחץ פיניש, ואוקיי, ופה מה שאנחנו נרצה לבצע, אנחנו נרצה לבצע מתודה שבעצם היא תבצע לוגין למערכת,
אז בואו ניצור את המתודה, public void לוגין, אוקיי, והיא תקבל כפרמטרים סטרינג של יוזר, וסטרינג של פסרונג.
אוקיי, נפתח את הסוגיה עם סולסלים וכרגע אנחנו נוסיף איזשהו הסבר, אני כותב cso control space ומה שאני יכול לעשות עכשיו זה לתאר מה אני הולך לעשות, אז אני כותב method will login to site, אוקיי, ועכשיו מה שאני צריך
לעשות זה בעצם לבצע לוגין על ידי תיבת היוזרנם והפסוורט בשדות המתאימים ולחיצה על כפתור submit אז בוא נעשה type user type password וקליק סבמיט סבמיט אוקיי ומה שאנחנו צריכים לעשות על מנת לבצע את זה נכתוב פה עוד מתודה שבעצם מבצעת את ההזנת טקסט לשדות אז בואו נראה איך