PracticU

משתנים לקריאה בלבד - readonly

בלי כתוביותעם כתוביות
PracticU › קורס תכנות מונחה עצמים - OOP - Object Oriented Programming - חומר לימוד של מדעי המחשב › משתנים לקריאה בלבד - readonly
מילון מושגים:
משתנה - שם שמפנה למקום בזיכרון שבו נשמר ערך שיכול להשתנות במהלך ריצת התוכנית, כמו מספר, טקסט או אובייקט.
מחרוזת - סוג נתונים שמייצג רצף של תווים, כלומר טקסט, ומשמש לאחסון מילים, משפטים או כל רצף סימנים.
בנאי - מתודה מיוחדת שמופעלת אוטומטית בעת יצירת אובייקט ממחלקה, ומאתחלת את ערכיו ההתחלתיים.
מחלקה - תבנית בתכנות מונחה עצמים שמגדירה אילו נתונים ופעולות יהיו לאובייקטים שנוצרים ממנה.
אובייקט - יחידה בתכנות מונחה עצמים שמאגדת נתונים (תכונות) ופעולות (מתודות). נוצר בדרך כלל ממחלקה המשמשת כתבנית.

משתנים לקריאה בלבד - readonly
הסרטון מציג את המילה readonly: שדה שמקבל ערך רק בזמן היצירה, ואי אפשר לשנות אותו אחר כך.
השלבים העיקריים
1. הדוגמה: מחלקת Person עם שם פרטי, שם משפחה ותעודת זהות. השם יכול להשתנות, למשל בעת נישואין, אבל תעודת הזהות לא משתנה.
2. הגדרה: public readonly string ID; מאפשר להכניס את הערך רק בבנאי או בשורת ההגדרה. כל ניסיון לשנות אותו מחוץ לבנאי נכשל בקומפילציה.
3. למה מחרוזת: תעודת זהות נשמרת כמחרוזת, כי אפס בתחילת המספר עלול להיעלם אם השדה היה מספר.
4. בנאי ריק: אם מחלקה מכילה שדה readonly, בנאי ריק היה משאיר אותו ללא ערך. לכן צריך להעביר את תעודת הזהות בכל בנאי.
שימו לב
גם מחלקה כמו Point עם x ו-y יכולה להשתמש ב-readonly, אם רוצים שהערכים לא ישתנו אחרי היצירה. ערך לשדה readonly אפשר לתת גם בשורת ההגדרה שלו.
readonly מתאים לערכים שנקבעים פעם אחת לכל חיי האובייקט, כמו מספר זהות.
השיעור הבא בקורס: קבועים - const

פרקי ההרצאה: משתנים לקריאה בלבד - readonly

  1. 00:00

    המילה readonly ומחלקת Person

  2. 00:39

    הגדרת שם ותעודת זהות

  3. 01:46

    בניית קונסטרקטור ואובייקט

  4. 04:00

    שינוי שם משפחה ושם פרטי

  5. 04:40

    הצורך לקבע את תעודת הזהות

תמלול ההרצאה: משתנים לקריאה בלבד - readonly

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

  1. 00:00

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

  2. 00:19

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

  3. 00:37

    נניח בן אדם, מה יש לבן אדם מבחינתנו? לבן אדם יש כמובן שם פרטי, לבן אדם יש שם משפחה ולבן אדם יש תעודת זהות. אז בואו נגדיר פה public string first name, public string last name ו-public string ID. אוקיי, אז קודם כל למה תעודת הזהות זה סטרינג במקרה הזה?

  4. 01:15

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

  5. 01:28

    ואנחנו רוצים עכשיו ללכת ולבצע פונקציה שמציגה את הנתונים. בואו נכתוב פה פונקציה שמציגה לנו first name, פונקציה שמציגה לנו את ה-last name, פונקציה שמציגה לנו את תעודת הזהות.

  6. 02:05

    בואו נבנה קונסטרקטור ריק, קונסטרקטור שמקבל את כל הפרמטרים, ומהתחלת המשתנים first name עם f גדולה שווה first name עם f קטנה last name last name ו-id id וכעת סיימנו לבנות את המחלקה ואנחנו רוצים לגשת ולבנות אובייקט ממנה אז יש לנו פה את הפרוגרם נשים את המחלקה ליד סגור את הסלושן אקספלורר ונבנה אובייקט בן אדם

  7. 02:52

    person my person שווה new person וניתן לו ערכים ניתן לו את מוישה כהן ותעודת זהות שהיא תעודת זהות שיכולה להיות חוקית בארץ.

  8. 03:34

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

  9. 03:57

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

  10. 04:13

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

  11. 04:44

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

  12. 05:04

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

  13. 05:13

    יש גם שיטות לטפל בזה. אבל רגע מבחינתנו אנחנו רואים שכן יש אפשרות לשנות את כל אחד מהערכים של ה-data members שימו לב שהצלחנו לשנות את כל הערכים מדנה כהן עם תעודת זהות אחת לדנית לוי עם תעודת זהות אחרת וזה כמובן משהו שלא כל כך נכון לבצע אז בשביל

  14. 05:46

    לחסום את האפשרות הזאת

לקורס המלא: קורס תכנות מונחה עצמים OOP

ההרצאה הקודמת: הסבר על this

ההרצאה הבאה: קבועים - const

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

  • הגדרת משתמש לקריאה בלבד - ב-vCenter
  • משתנים
  • משתנים - חלק 1
  • CLR - פונקצית ReadOnly

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

  • קורס יסודות התכנות - שפת C# .NET - קורס תכנות למתחילים - דוט-נט / סי-שארפ - חומר לימוד של מדעי המחשב