PracticU

classes - חלק 2

בלי כתוביותעם כתוביות
PracticU › קורס סלניום בסיסי - בדיקות אוטומטיות - Selenium › classes - חלק 2
מילון מושגים:
אובייקט - יחידה בתכנות מונחה עצמים שמאגדת נתונים (תכונות) ופעולות (מתודות). נוצר בדרך כלל ממחלקה המשמשת כתבנית.
כימוס - עיקרון בתכנות מונחה עצמים שמסתיר את הפרטים הפנימיים של אובייקט וחושף רק ממשק מבוקר.
מתודה - פונקציה המוגדרת בתוך מחלקה ומתארת פעולה שאובייקטים מאותה מחלקה יכולים לבצע.

classes - חלק 2
השיעור ממשיך את נושא הקלאסים ומסביר איך מגנים על השדות: מסתירים אותם בעזרת private, ניגשים אליהם דרך getter ו-setter, ומוסיפים ולידציה בתוך ה-setter. כך המבנה של האובייקט נשמר, והנתונים נכנסים רק בדרך מבוקרת.
השלבים העיקריים
1. הסתרת השדות: מגדירים את השדות כ-private, כך שקלאס חיצוני לא יכול לגשת אליהם ישירות. זה נקרא encapsulation.
2. יצירת getter ו-setter: בתפריט Source של אקליפס בוחרים Generate Getters and Setters. המתודה get מחזירה את הערך, ו-set מכניסה ערך חדש.
3. הזנת נתונים דרך set: במקום לגשת לשדה ישירות כותבים, למשל, myCar.setLicenseNumber(...). כך הקוד מכריח מעבר דרך מתודה, והמתודה יכולה לבדוק את הערך.
4. ולידציה: השדה year הוגדר כ-int, ובתוך setYear נבדק אם השנה גדולה מ-2018. שנה כזאת לא נשמרת, ומודפסת הודעה invalid here.
5. המילה this: בתוך ה-setter, this מתייחס לשדה של המופע הנוכחי. הצד השמאלי של ההשמה הוא השדה, והצד הימני הוא הערך שנשלח מבחוץ.
פקודות והגדרות
- private - מגביל את הגישה לשדה לתוך הקלאס בלבד.
- this.year - השדה של המופע הנוכחי.
שימו לב
אפשר להגדיר את השדות כ-public ולפנות אליהם ישירות, והקוד יתקמפל. ההמלצה בשיעור היא לעבוד דרך getter ו-setter, כדי לאפשר ולידציה.
אחרי השיעור תוכלו ליצור קלאס עם שדות פרטיים ולהוסיף לו ולידציה דרך setter.
השיעור הבא בקורס: classes - חלק 3

פרקי ההרצאה: classes - חלק 2

  1. 00:00

    חזרה על מחלקות סטטיות ודינמיות

  2. 00:39

    טמפלייט של מכונית לכמה מופעים

  3. 01:17

    דוגמת הבית - שדות שונים לכל מופע

  4. 01:58

    משתנים פרטיים ו-Encapsulation

  5. 04:14

    שגיאת גישה לשדה private מקלאס אחר

  6. 04:53

    יצירת Getter ו-Setter מתפריט Source

  7. 06:24

    שימוש ב-Setter להזנת נתונים לאינסטנס

  8. 08:33

    הזנת מודל ושנת ייצור דרך Setter

תמלול ההרצאה: classes - חלק 2

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

  1. 00:02

    שלום, בסרטון הקודם דיברנו על קלאסים בג'אווה, קלאס בג'אווה, ובשיעור הקרוב אנחנו נמשיך ונעמיק בנושא הזה.

  2. 00:11

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

  3. 00:36

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

  4. 01:03

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

  5. 01:37

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

  6. 02:14

    סטר קלאסס אז בואו נראה בואו נתחיל נחזור אל הדוגמה שעשינו פעם קודמת בשיעור הקודם יצאנו בעצם מתחת לפקדג' פרקטיס שלוש יצרנו שני קלאסים קלאס אחד הוא קלאס הרצה הוא כולל בתוכו את הפאבליק סטטיק וויידמן ממנו אני יכול לבצע הרצה להריץ את הקלאס ובעצם הוא משתמש בעצם באובייקט שיצרתי שהוא car object וממנו יצרתי שני אינסטנטים my car וyosi car אבל

  7. 02:48

    שניהם לקוחים מאותו דבר מה שמבדיל ביניהם זה אותו license license number שאיזנתי ב-1, 1, 2, 3 ובשני 4, 5, 6 וזה בעצם יצר שני מופעים והפגתי על שניהם את המתודה הדינמית דרייבינג וכל אחת מהם עשתה פעולה על האינסטנט שלה, אחת עשתה על מייקאר והשני עשתה על יוסיקאר אבל היא הפעילה נתונים אחרים בגלל שבעצם ב-run time, בזיכרון של הריצה היו שני מופעים של

  8. 03:16

    מייקאר שנוצרו מהטמפלייט car object. בוא נשים לב שאנחנו פה עשינו הזנה ל-license number, License Number אם אני הולך ל-Car Object אני רואה פה על ידי לחיצת קונטרול ולחיצה על האובייקט אני מגיע ישירות לשם על ידי ה-Car Object אני רואה שיש לי פה את ה-String Model, String Ear,

  9. 03:43

    String License Number זה בדוגמה שלנו השדות שהחלטנו שיאפיינו את המודל את הטמפלייט של מכונית שיצרנו. אבל שימו לב שקבענו אותם כפרייבט חלק מהגדרות שג'אווה זה encapsulation זאת אומרת היכולת שלנו לפנות לאיברים של אובייקט רק דרך מתודות ולא ישירות לשם כך אנחנו

  10. 04:07

    נשתמש במילה private ואז אנחנו הופכים את ה-private string license number אנחנו בעצם פי קטנה אנחנו אומרים שהיא license number הוא פרטי הוא לא ניתן לגישה מקלאסים חיצוניים כגון קלאס הערצה שיצרנו קודם אז אם אני הולך למעין אחר שעשיתי סייל אני רואה שיש לי פה הודעת שגיאה אין לי דרך להגיע ללייסנס נאמבר מה שהג'אווה אומר לי

  11. 04:40

    בעצם הוא אומר לי תיצור איזושהי מתודה באובייקט שלך לקאר אובייקט שבה אתה מאפשר הזנה של נתון לאותו אינסטנט לאותו לייסנס נאמבר שאתה יצרת אז בעצם מה אנחנו יכולים לעשות האקליפס נותן לנו את האופציה לעשות מקש ימני source ואני יכול לעשות generate getter and setter מה זה אומר זה אומר שאני יכול להגדיר מתודות

  12. 05:00

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

  13. 05:42

    זה הפעולה שיצרנו ואז הוספנו את הגטר וסטר איך עשינו את זה, קודם כל אנחנו צריכים לקבוע את השדות של אותו טמפלייט שלנו, אותו אובייקט שלנו ואז עשינו מקש ימני או ללכת source ואנחנו יכולים ללכת פה ולהגיד לו generate getter and setter והוא כותב לנו שכבר עשינו את זה הוא לא מאפשר לנו אבל עוד פעם דרך הדרך הראשונה מכ"ש ימני source ו-generate

  14. 06:12

    getter and setter אוקיי אז יש לנו את זה ואנחנו יכולים עכשיו לגשת מקלאס חיצוני לנתונים האלה ואיך בואו נראה איך אנחנו עושים את זה אם עשיתי קודם mycar license license number 123 אז הפעם אני לא יכול לעשות את זה אני צריך לעשות להשתמש בסטר שלי אני לוחץ נקודה ואז נפתח לי כל המתודות של האינסטנט

  15. 06:39

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

  16. 07:08

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

  17. 07:41

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

  18. 08:14

    ובעצם קיבלנו את אותה תוצאה, עשינו שני אינסטנטים של קארס, אחד קראנו לאינסטנט מייקאר, השני קראנו יוסי קאר, ואחד קיבל license ID 123, והשני 456, בואו ניתן עוד דברים לדוגמה נעשה סטר למה היה לנו שם בוא נראה קונטרול v נקודה סט ואני יכול לעשות סט מודל

  19. 08:43

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

  20. 09:47

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

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

ההרצאה הקודמת: classes - חלק 1

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

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

  • מחלקות - Swift Classes
  • יצירת מחלקות - Model Classes - לתיאור הטבלאות שבמסד הנתונים

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

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