C# .Net Lecture 2
‫מרצה‬:‫דורון‬‫רייפמן‬
‫מבוא‬‫לשפת‬#C‫ול‬-.Net Framework
Objects 2
‫מה‬‫למדנו‬‫עד‬‫כה‬‫הקודם‬ ‫בשיעור‬
•‫הבדלים‬‫בין‬C‫ל‬- C#.
•‫סוגי‬‫משתנים‬.
•‫שימוש‬‫בסיסי‬‫ב‬- Console.‫כולל‬‫תרגול‬‫מעשי‬.
•‫תחילת‬‫ההכרות‬‫עם‬‫אובייקטים‬.‫משתנים‬‫ותכונות‬‫של‬
‫אובייקט‬.‫יצירת‬‫אובייקטים‬‫ושימוש‬‫בהם‬.
•‫קצת‬‫על‬‫יצירת‬‫פרוייקטים‬‫ושימוש‬‫ב‬Visual Studio.
•propfull snippet.
•‫תרגול‬‫מעשי‬‫באובייקטים‬.
•‫שימוש‬‫בפונקציות‬.
•‫מערכים‬.‫כולל‬‫יכולות‬‫מובנות‬‫שלהם‬.
•‫לולאות‬.
•‫פולימורפיזם‬.
•‫שימוש‬‫ב‬Region.
•‫יכולת‬‫לתיעוד‬‫אוטומטי‬‫של‬‫הקוד‬‫עם‬"///”.
•‫הספקנו‬‫די‬‫הרבה‬;-)
•‫הזה‬ ‫בשיעור‬‫נ‬‫קצת‬ ‫חזור‬‫על‬‫חלק‬
‫מ‬‫הנושאים‬‫בצורה‬‫יותר‬‫יסודית‬.
‫בחומר‬ ‫נעמיק‬ ‫גם‬ ‫וכמובן‬.
‫דורון‬‫רייפמן‬,C#.Net
‫מה‬‫אובייקט‬ ‫זה‬
‫אובייקט‬‫מכיל‬‫כמה‬‫סוגים‬‫של‬"‫דברים‬":
•‫אתחול‬(Constructor.)
‫משתנים‬(Variables or Members).
‫תכונות‬(Properties).
‫מתודות‬‫או‬‫פונקציות‬(Methods).‫הוראה‬‫לאובייקט‬‫לעשות‬"‫משהו‬"‫עם‬‫ה‬"‫מצב‬"‫שלו‬.
•‫ממשקים‬(Interfaces).
•‫ירושות‬(Inheritance).‫נשאיר‬‫את‬‫זה‬‫לשלב‬‫יותר‬‫מתקדם‬.
‫דורון‬‫רייפמן‬,C#.Net
‫אובייקטים‬ ‫שוב‬ ‫נתרגל‬ ‫בואו‬
‫מסוג‬ ‫אובייקט‬ ‫ביחד‬ ‫ניצור‬Student.‫הכולל‬:
‫אתחול‬(Constructor.)
‫משתנים‬(Variables or Members).
‫תכונות‬(Properties).
‫מתודות‬‫או‬‫פונקציות‬(Methods).‫הוראה‬‫לאובייקט‬‫לעשות‬"‫משהו‬"‫עם‬‫ה‬"‫מצב‬"‫שלו‬.
‫ממשקים‬(Interfaces).
‫ירושות‬(Inheritance).‫נשאיר‬‫את‬‫זה‬‫לשלב‬‫יותר‬‫מתקדם‬.
‫דורון‬‫רייפמן‬,C#.Net
Student
‫דורון‬‫רייפמן‬,C#.Net
‫עם‬ ‫אובייקט‬ ‫נראה‬ ‫איך‬ ‫זוכרים‬region.
‫ונקי‬ ‫מסודר‬.
‫בתוכן‬ ‫אותו‬ ‫נמלא‬ ‫בואו‬.
‫ותכונות‬ ‫משתנים‬ ‫מימוש‬
‫דורון‬‫רייפמן‬,C#.Net
‫את‬ ‫לכם‬ ‫מזכיר‬propfull sniphet.
‫הגדרנו‬Member‫ו‬-Properties.
‫נוסיף‬ ‫בואו‬Constructor.
‫באובייקט‬ ‫לשימוש‬ ‫לב‬ ‫שימו‬
DateTime‫של‬.Net
Constructors
‫דורון‬‫רייפמן‬,C#.Net
‫שני‬ ‫הוספנו‬Constructors
‫שונים‬ ‫לשימושים‬.
‫ערך‬ ‫של‬ ‫למנגנון‬ ‫לב‬ ‫שימו‬‫דיפולטיבי‬.
‫ב‬ ‫נשתמש‬ ‫בואו‬-Constructor.
‫דורון‬‫רייפמן‬,C#.Net
‫ב‬ ‫שימוש‬-Constructor‫ריק‬.
‫ערך‬ ‫של‬ ‫במנגנון‬ ‫שימוש‬
‫דיפולטיבי‬.
‫ב‬ ‫שימוש‬-Constructor
‫המלא‬.
‫ב‬ ‫שימוש‬-ToString()
‫ב‬ ‫שימוש‬-String.Format().
‫ב‬ ‫שימוש‬-Constructor
Override & ToString
‫דורון‬‫רייפמן‬,C#.Net
Override–‫מימוש‬ToString().
‫הטקסטואלי‬ ‫הייצוג‬ ‫את‬ ‫העברנו‬
‫עצמו‬ ‫לאובייקט‬.
‫אלגנטי‬ ‫יותר‬.
‫האובייקט‬ ‫של‬ ‫להדפסה‬ ‫כשקוראים‬
‫ה‬ ‫בלי‬ToString‫עובד‬ ‫לא‬ ‫זה‬!
override keyword
‫דורון‬‫רייפמן‬,C#.Net
‫בלי‬override‫יודע‬ ‫לא‬ ‫האובייקט‬
‫התכונה‬ ‫את‬ ‫שדרסנו‬,‫כן‬ ‫אם‬ ‫אלא‬
‫ל‬ ‫קוראים‬-ToString‫מפורשות‬.
String.Format‫ל‬ ‫קורא‬-
ToString‫ייצוגו‬ ‫את‬ ‫לקבל‬ ‫כדי‬
‫הטקסטואלי‬.
‫בקורס‬ ‫מאוחר‬ ‫יותר‬ ‫בשלב‬ ‫ביסודיות‬ ‫בירושה‬ ‫נעסוק‬.
‫דורון‬‫רייפמן‬,C#.Net
‫ה‬ ‫את‬ ‫נתקן‬-main‫את‬ ‫ונוריד‬
‫ל‬ ‫המפורשות‬ ‫הקריאות‬-ToString.
‫גם‬WriteLine‫דבר‬ ‫אותו‬ ‫עושה‬.
‫יודע‬ ‫שאובייקט‬ ‫מקובלת‬ ‫דרך‬ ‫זו‬
‫ככה‬ ‫עצמו‬ ‫את‬ ‫להציג‬.
‫שלכם‬ ‫באובייקטים‬ ‫תממשו‬ ‫תמיד‬
‫הטקסטואלי‬ ‫הייצוג‬ ‫את‬.
ToString‫טקסטואלי‬ ‫ייצוג‬
Object & Type Info
‫דורון‬‫רייפמן‬,C#.Net
‫הם‬ ‫המשתנים‬ ‫שכל‬ ‫כבר‬ ‫אמרנו‬
‫אובייקטים‬.
‫את‬ ‫יורש‬ ‫אובייקט‬ ‫כל‬Object.
Object‫אחד‬ ‫אף‬ ‫יורש‬ ‫לא‬.
‫ל‬-Object‫יש‬TypeInfo.
‫אפילו‬int‫אובייקט‬ ‫הוא‬.‫את‬ ‫יורש‬
ValueType.
Is‫האובייקט‬ ‫סוג‬ ‫את‬ ‫מתשאל‬.
Student‫האם‬ ‫לשאלה‬ ‫בחיוב‬ ‫יענה‬
‫הוא‬Object‫אובייקט‬ ‫יורש‬ ‫הוא‬ ‫כי‬
‫אותו‬ ‫שיורש‬.
‫שלמדנו‬ ‫מה‬ ‫של‬ ‫מעשי‬ ‫תרגול‬
‫דורון‬‫רייפמן‬,C#.Net
‫מסוג‬ ‫אובייקט‬ ‫ממשו‬Subject,‫בכיתה‬ ‫ביחד‬ ‫שכתבנו‬ ‫למה‬ ‫בדומה‬.‫למימוש‬ ‫דגשים‬:
•‫הבאים‬ ‫השדות‬ ‫לאובייקט‬:‫המקצוע‬ ‫שם‬,‫המרצה‬ ‫שם‬,‫השיעור‬ ‫מתקיים‬ ‫שבו‬ ‫ושעה‬ ‫יום‬,‫הכיתה‬ ‫שם‬.
•‫בתוך‬ ‫מסודרים‬ ‫האובייקט‬ ‫חלקי‬region‫שנלמד‬ ‫כפי‬.
•‫שנלמד‬ ‫כפי‬ ‫קידומת‬ ‫עם‬ ‫משתנים‬ ‫שמות‬( .m_t, m_n, m_c.)
•‫הגדירו‬Members‫ו‬-Properties.
•‫שני‬ ‫הגדירו‬Constructors.
•‫הגדירו‬override‫פונקצית‬ ‫על‬ToString.
•‫אותם‬ ‫ומדפיסה‬ ‫אובייקטים‬ ‫כמה‬ ‫שמייצרת‬ ‫ראשית‬ ‫תוכנית‬ ‫כתבו‬.
•‫מסוג‬ ‫אובייקט‬ ‫של‬ ‫הירושה‬ ‫השתלשלות‬ ‫אחרי‬ ‫שמתחקה‬ ‫לולאה‬ ‫כתבו‬ ‫הראשית‬ ‫בתוכנית‬int.
‫בהצלחה‬
Collection - ArrayList
‫דורון‬‫רייפמן‬,C#.Net
Collections‫אובייקטים‬ ‫הינם‬
‫רשימה‬ ‫בתוכם‬ ‫להחזיק‬ ‫שיכולים‬
‫למערך‬ ‫בדומה‬ ‫אובייקטים‬ ‫של‬.
‫והם‬ ‫יכולות‬ ‫רבי‬ ‫האלה‬ ‫האובייקטים‬
‫זמן‬ ‫את‬ ‫רבה‬ ‫במידה‬ ‫מקצרים‬
‫הכתיבה‬.
‫אובייקט‬ ‫לכזה‬ ‫דוגמה‬ ‫ניקח‬ ‫בואי‬
‫שנקרא‬ArrayList‫בעזרתו‬ ‫ונייצר‬
‫מהדוגמא‬ ‫סטודנטים‬ ‫של‬ ‫רשימה‬
‫בכיתה‬ ‫ביחד‬ ‫שעשינו‬.
ArrayList(2)
‫דורון‬‫רייפמן‬,C#.Net
ArrayList‫שונים‬ ‫מסוגים‬ ‫אובייקטים‬ ‫להחזיק‬ ‫יכול‬
(‫למערך‬ ‫בניגוד‬.)
‫אובייקט‬ ‫של‬ ‫ההצגה‬ ‫ביכולת‬ ‫לשימוש‬ ‫לב‬ ‫שימו‬
‫בזכות‬ ‫שנרכשת‬ToString.‫את‬ ‫מדפיסים‬ ‫אנחנו‬
‫סוג‬ ‫מאיזה‬ ‫לנו‬ ‫שאכפת‬ ‫בכלל‬ ‫מבלי‬ ‫הרשימה‬ ‫תכולת‬
‫הם‬.
‫יש‬ ‫אובייקטים‬ ‫של‬ ‫סוגים‬ ‫מיני‬ ‫כל‬ ‫להיות‬ ‫שיכולים‬ ‫בגלל‬
‫אותם‬ ‫למיין‬ ‫למשל‬ ‫קושי‬.‫הסדר‬ ‫יחס‬ ‫מה‬ ‫ברור‬ ‫לא‬.
ArrayList(3)
‫דורון‬‫רייפמן‬,C#.Net
‫והתוצאה‬:
Interfaces
‫דורון‬‫רייפמן‬,C#.Net
Interface‫לאמץ‬ ‫יכול‬ ‫שאובייקט‬ ‫משהו‬ ‫הוא‬,
‫קטן‬ ‫תכנותי‬ ‫במאמץ‬ ‫כלל‬ ‫בדרך‬.
‫מסוים‬ ‫ממשק‬ ‫אימץ‬ ‫שאובייקט‬ ‫ברגע‬,‫בעצם‬ ‫הוא‬
‫הזו‬ ‫היכולת‬ ‫את‬ ‫לו‬ ‫שיש‬ ‫לעולם‬ ‫מכריז‬.
‫הזו‬ ‫היכולת‬ ‫את‬ ‫לו‬ ‫שיש‬ ‫ברגע‬,‫נפתחות‬
‫בו‬ ‫שמשתמש‬ ‫למי‬ ‫רבות‬ ‫אפשרויות‬.
‫את‬ ‫נממש‬Icomparable‫מיון‬ ‫יכולת‬ ‫לקבל‬ ‫כדי‬
Interfaces(2)
‫דורון‬‫רייפמן‬,C#.Net
‫ש‬ ‫נזכור‬-ArrayList‫להחזיק‬ ‫יודע‬
‫שונים‬ ‫מסוגים‬ ‫אובייקטים‬.
‫מסוגים‬ ‫אובייקטים‬ ‫להשוות‬ ‫ניתן‬ ‫איך‬
‫שונים‬?
‫איך‬ArrayList‫למיין‬ ‫יכול‬ ‫הוא‬ ‫אם‬ ‫יודע‬
‫בכלל‬?‫לו‬ ‫יש‬ ‫אם‬ ‫האובייקט‬ ‫את‬ ‫שואל‬ ‫הוא‬
‫היכולת‬ ‫את‬IComparable.
‫לו‬ ‫ואין‬ ‫במידה‬,‫ימיין‬ ‫ולא‬ ‫שגיאה‬ ‫יזרוק‬ ‫הוא‬.
‫שגיאה‬ ‫בדיקות‬ ‫קצת‬ ‫להכניס‬ ‫כדאי‬
‫שלנו‬ ‫ההשוואה‬ ‫לפונקצית‬.
‫שלמדנו‬ ‫מה‬ ‫של‬ ‫מעשי‬ ‫תרגול‬
‫דורון‬‫רייפמן‬,C#.Net
‫את‬ ‫ממשו‬IComparable‫סטודנט‬ ‫באובייקט‬.‫למימוש‬ ‫דגשים‬:
•‫ברשימה‬ ‫האובייקטים‬ ‫בניית‬ ‫את‬ ‫כתבו‬.
•‫אחרים‬ ‫מסוגים‬ ‫אובייקטים‬ ‫גם‬ ‫להכניס‬ ‫נסו‬.‫קורה‬ ‫מה‬ ‫תבדקו‬.
‫בהצלחה‬
‫דורון‬‫רייפמן‬,C#.Net
•‫ב‬C#‫נוצר‬Object Instance‫בביצוע‬New.
•‫לעוד‬ ‫שלנו‬ ‫האובייקט‬ ‫מסוג‬ ‫משתנה‬ ‫ונציב‬ ‫במידה‬
‫כזה‬ ‫אחד‬,‫אובייקט‬ ‫לאותו‬ ‫יצביעו‬ ‫שניהם‬.
•‫הקלעים‬ ‫מאחורי‬,C#‫מנהל‬Use count‫לכמה‬
‫האובייקט‬ ‫על‬ ‫מצביעים‬ ‫משתנים‬.‫המשתנה‬
‫מהסקופ‬ ‫ביציאה‬ ‫או‬ ‫בהשמה‬ ‫מתעדכן‬(‫בלוק‬,
‫פונקציה‬.)‫לאפס‬ ‫מגיע‬ ‫הערך‬ ‫כאשר‬,‫האובייקט‬
‫ל‬ ‫נמסר‬-Garbage collector.
•‫אובייקט‬ ‫לאותו‬ ‫נוסף‬ ‫עותק‬ ‫לייצר‬ ‫כדי‬.‫את‬ ‫נממש‬
Interface Clone.‫עליו‬ ‫אינפורמציה‬ ‫תחפשו‬
‫אותו‬ ‫ותממשו‬.
•‫את‬ ‫תיישמו‬ ‫הבית‬ ‫בתרגיל‬Clone‫לכל‬
‫שלכם‬ ‫האובייקטים‬.‫תמיד‬ ‫לעשות‬ ‫תקפידו‬ ‫כך‬.
Instances and reference to instances
‫אובייקטים‬ ‫על‬ ‫למדנו‬ ‫מה‬
‫אתחול‬(Constructor.)
‫משתנים‬(Variables or Members).
‫תכונות‬(Properties).
‫מתודות‬‫או‬‫פונקציות‬(Methods).‫הוראה‬‫לאובייקט‬‫לעשות‬"‫משהו‬"‫עם‬‫ה‬"‫מצב‬"‫שלו‬.
‫ממשקים‬(Interfaces).
‫ירושות‬(Inheritance).‫נשאיר‬‫את‬‫זה‬‫לשלב‬‫יותר‬‫מתקדם‬.
‫דורון‬‫רייפמן‬,C#.Net
‫דורון‬‫רייפמן‬,C#.Net
●‫ידע‬ ‫והעמקנו‬ ‫אובייקטים‬ ‫בנושא‬ ‫חזרה‬ ‫עשינו‬.‫תרגול‬ ‫כולל‬
‫נוסף‬.‫אובייקטים‬ ‫עם‬ ‫בנוח‬ ‫יותר‬ ‫מרגישים‬ ‫כבר‬ ‫אנחנו‬.
●Constructor.
●ToString.‫לעשות‬override(‫בירושה‬ ‫טכניקה‬.)
●‫באובייקט‬ ‫שימוש‬DateTime.
●Type info.
●‫על‬ ‫קצת‬Collections.
●‫אובייקטים‬ ‫של‬ ‫רשימה‬ ‫בניית‬.
●Interfaces.
‫אבקש‬‫לעבור‬‫בבית‬‫על‬
‫הנושאים‬‫שנלמדו‬‫בכיתה‬
‫ולתרגל‬‫את‬‫החומר‬‫הנלמד‬.
‫מה‬‫למדנו‬‫עד‬‫כה‬?
‫דורון‬‫רייפמן‬,C#.Net
‫הגשה‬ ‫מועד‬:‫הבא‬ ‫השיעור‬ ‫לפני‬ ‫יומיים‬(‫מוצ‬"‫בלילה‬ ‫ש‬( .)‫השיעור‬ ‫לפני‬ ‫לבדוק‬ ‫שאספיק‬ ‫כדי‬.)
‫הדוגמא‬ ‫עם‬ ‫הגעתם‬ ‫אליה‬ ‫מהנקודה‬ ‫נמשיך‬ ‫אנחנו‬.‫הבא‬ ‫השיעור‬ ‫לפני‬,‫הפתרון‬ ‫את‬ ‫לאתר‬ ‫אעלה‬
‫לתרגיל‬ ‫שלי‬.
‫התרגיל‬ ‫תיאור‬:
‫ספר‬ ‫בית‬ ‫של‬ ‫חלקי‬ ‫לניהול‬ ‫אובייקטים‬ ‫נפתח‬ ‫בתרגיל‬.
‫של‬ ‫יכולות‬ ‫בעלי‬ ‫יהיו‬ ‫האובייקטים‬ ‫כל‬IClonable, IComparable‫את‬ ‫יממשו‬ ‫וכמובן‬ToString.
‫עם‬ ‫מסודרים‬ ‫יהיו‬ ‫האובייקטים‬ ‫שכל‬ ‫מדגיש‬ ‫אני‬Region‫שנלמד‬ ‫כפי‬.‫שנלמד‬ ‫כפי‬ ‫משתנים‬ ‫שמות‬
m_t, m_n, m_c‫וכדומה‬.‫יורדו‬20‫סדר‬ ‫חוסר‬ ‫על‬ ‫מהציון‬ ‫נקודות‬.
‫התרגיל‬ ‫בהערכת‬,‫עבר‬ ‫יהיה‬ ‫הציון‬/‫בלבד‬ ‫נכשל‬.‫בסדר‬ ‫היה‬ ‫לא‬ ‫מה‬ ‫על‬ ‫שלי‬ ‫הערות‬ ‫יתקבלו‬ ‫ולא‬
‫בתרגיל‬.‫גדולות‬ ‫הגשה‬ ‫עבודות‬ ‫בגדר‬ ‫לא‬ ‫שהם‬ ‫התרגילים‬ ‫כל‬,‫ביחד‬ ‫כולם‬ ‫יהוו‬,‫מסוים‬ ‫אחוז‬(10-
20%)‫הסופי‬ ‫מהציון‬.
‫ב‬ ‫רק‬ ‫צורך‬ ‫שיש‬ ‫מדגיש‬ ‫אני‬-Shallow Clone‫של‬ ‫במימוש‬Interface IClonable.
‫מספר‬ ‫תרגיל‬1‫להגשה‬(1:)
‫דורון‬‫רייפמן‬,C#.Net
‫האובייקטים‬ ‫רשימת‬:
‫אובייקט‬Student‫מידע‬ ‫מכיל‬ ‫שרק‬,‫בכיתה‬ ‫שתורגלה‬ ‫מהדוגמא‬ ‫אותו‬ ‫קחו‬.
‫ה‬ ‫יכולת‬ ‫את‬ ‫לו‬ ‫להוסיף‬ ‫נדרשים‬ ‫אתם‬-Clone.
‫המקצועות‬ ‫רשימת‬ ‫את‬ ‫גם‬ ‫לו‬ ‫להוסיף‬ ‫נדרשים‬ ‫אתם‬,‫ב‬ ‫ריקה‬ ‫לרשימה‬ ‫שתאותחל‬-Constructor.‫מסוג‬
ArrayList.
‫כן‬ ‫כמו‬,‫כמה‬ ‫תממשו‬ ‫אתם‬Method:1.FindSubject‫מקצוע‬ ‫שם‬ ‫לפי‬.2.AddSubject‫אובייקט‬ ‫שמקבל‬
‫מסוג‬Subject.
‫אובייקט‬Subject,‫המורה‬ ‫ושם‬ ‫המקצוע‬ ‫שם‬ ‫שיכיל‬.
‫בכיתה‬ ‫תלמידים‬ ‫רשימת‬ ‫לו‬ ‫תהייה‬ ‫בנוסף‬,‫מסוג‬ ‫ריקה‬ ‫לרשימה‬ ‫שתאותחל‬ArrayList‫ב‬-Constructor.
‫כמה‬ ‫נייצר‬ ‫הזה‬ ‫לאובייקט‬Method.1.FindStudent,‫ברשימת‬ ‫אותו‬ ‫ומוצאת‬ ‫סטודנט‬ ‫שם‬ ‫שמקבלת‬
‫בכיתה‬ ‫הסטודנטים‬.2.AddStudent‫הזה‬ ‫למקצוע‬ ‫אותו‬ ‫ומוסיפה‬ ‫תלמיד‬ ‫מסוג‬ ‫אובייקט‬ ‫שמקבלת‬.
‫אובייקט‬School,‫הספר‬ ‫בית‬ ‫שם‬ ‫שיכיל‬,‫המקצועות‬ ‫של‬ ‫ורשימה‬ ‫הסטודנטים‬ ‫של‬ ‫רשימה‬,‫מסוג‬ ‫שניהם‬
ArrayList.
‫כמה‬ ‫נייצר‬ ‫הזה‬ ‫לאובייקט‬Method.1.FindStudent,‫ברשימת‬ ‫אותו‬ ‫ומוצאת‬ ‫סטודנט‬ ‫שם‬ ‫שמקבלת‬
‫הכללית‬ ‫הסטודנטים‬.2.AddStudent‫התלמידים‬ ‫רשימת‬ ‫אותו‬ ‫ומוסיפה‬ ‫תלמיד‬ ‫מסוג‬ ‫אובייקט‬ ‫שמקבלת‬.3.
FindSubject‫המקצועות‬ ‫ברשימת‬ ‫אותו‬ ‫ומוצאת‬ ‫מקצוע‬ ‫שם‬ ‫שמקבלת‬.4.AddSubject‫אובייקט‬ ‫שמקבלת‬
‫המקצועות‬ ‫לרשימת‬ ‫אותו‬ ‫ומוסיפה‬ ‫מקצוע‬ ‫מסוג‬.
‫מספר‬ ‫תרגיל‬1‫להגשה‬(2:)
‫דורון‬‫רייפמן‬,C#.Net
‫הראשית‬ ‫התוכנית‬:
‫התלמידים‬ ‫לרשימת‬ ‫נוסיף‬20‫ייחודים‬ ‫שמות‬ ‫עם‬ ‫תלמידים‬.
‫המקצועות‬ ‫לרשימת‬ ‫נוסיף‬20‫ייחודיים‬ ‫שמות‬ ‫עם‬ ‫מקצועות‬.
‫הראשונים‬ ‫המקצועות‬ ‫לחמשת‬ ‫הראשונים‬ ‫תלמידים‬ ‫חמישה‬,‫וכך‬ ‫השניים‬ ‫המקצועות‬ ‫לחמשת‬ ‫השניים‬ ‫החמישה‬
‫הלאה‬.
‫תלמיד‬ ‫למקצוע‬ ‫שנוסיף‬ ‫פעם‬ ‫שבכל‬ ‫כמובן‬,‫שלו‬ ‫המקצועות‬ ‫לרשימת‬ ‫מקצוע‬ ‫לתלמיד‬ ‫גם‬ ‫נוסיף‬.
‫בה‬ ‫שמשתתפים‬ ‫התלמידים‬ ‫רשימת‬ ‫את‬ ‫מקצוע‬ ‫ולכל‬ ‫המקצועות‬ ‫רשימת‬ ‫את‬ ‫לקונסול‬ ‫שמדפיסה‬ ‫לולאה‬ ‫בצעו‬.
‫משתתף‬ ‫הוא‬ ‫בהם‬ ‫המקצועות‬ ‫רשימת‬ ‫את‬ ‫תלמיד‬ ‫ולכל‬ ‫התלמידים‬ ‫רשימת‬ ‫את‬ ‫לקונסול‬ ‫שמדפיסה‬ ‫לולאה‬ ‫בצעו‬.
‫בהצלחה‬.
‫להדגיש‬ ‫רוצה‬ ‫אני‬:
•‫הפרויקט‬ ‫של‬ ‫שלכם‬ ‫הזיפ‬ ‫שליחת‬ ‫את‬ ‫יחסום‬ ‫לא‬ ‫שהמייל‬ ‫כדי‬:‫מחיצות‬ ‫את‬ ‫למחוק‬:Bin, Obj.
•‫ה‬ ‫עם‬ ‫הפרויקט‬ ‫כל‬ ‫של‬ ‫זיפ‬ ‫לשלוח‬ ‫יש‬-Solution.
‫מספר‬ ‫תרגיל‬1‫להגשה‬(3:)

C# .net lecture 2 Objects 2

  • 1.
    C# .Net Lecture2 ‫מרצה‬:‫דורון‬‫רייפמן‬ ‫מבוא‬‫לשפת‬#C‫ול‬-.Net Framework Objects 2
  • 2.
    ‫מה‬‫למדנו‬‫עד‬‫כה‬‫הקודם‬ ‫בשיעור‬ •‫הבדלים‬‫בין‬C‫ל‬- C#. •‫סוגי‬‫משתנים‬. •‫שימוש‬‫בסיסי‬‫ב‬-Console.‫כולל‬‫תרגול‬‫מעשי‬. •‫תחילת‬‫ההכרות‬‫עם‬‫אובייקטים‬.‫משתנים‬‫ותכונות‬‫של‬ ‫אובייקט‬.‫יצירת‬‫אובייקטים‬‫ושימוש‬‫בהם‬. •‫קצת‬‫על‬‫יצירת‬‫פרוייקטים‬‫ושימוש‬‫ב‬Visual Studio. •propfull snippet. •‫תרגול‬‫מעשי‬‫באובייקטים‬. •‫שימוש‬‫בפונקציות‬. •‫מערכים‬.‫כולל‬‫יכולות‬‫מובנות‬‫שלהם‬. •‫לולאות‬. •‫פולימורפיזם‬. •‫שימוש‬‫ב‬Region. •‫יכולת‬‫לתיעוד‬‫אוטומטי‬‫של‬‫הקוד‬‫עם‬"///”. •‫הספקנו‬‫די‬‫הרבה‬;-) •‫הזה‬ ‫בשיעור‬‫נ‬‫קצת‬ ‫חזור‬‫על‬‫חלק‬ ‫מ‬‫הנושאים‬‫בצורה‬‫יותר‬‫יסודית‬. ‫בחומר‬ ‫נעמיק‬ ‫גם‬ ‫וכמובן‬. ‫דורון‬‫רייפמן‬,C#.Net
  • 3.
    ‫מה‬‫אובייקט‬ ‫זה‬ ‫אובייקט‬‫מכיל‬‫כמה‬‫סוגים‬‫של‬"‫דברים‬": •‫אתחול‬(Constructor.) ‫משתנים‬(Variables orMembers). ‫תכונות‬(Properties). ‫מתודות‬‫או‬‫פונקציות‬(Methods).‫הוראה‬‫לאובייקט‬‫לעשות‬"‫משהו‬"‫עם‬‫ה‬"‫מצב‬"‫שלו‬. •‫ממשקים‬(Interfaces). •‫ירושות‬(Inheritance).‫נשאיר‬‫את‬‫זה‬‫לשלב‬‫יותר‬‫מתקדם‬. ‫דורון‬‫רייפמן‬,C#.Net
  • 4.
    ‫אובייקטים‬ ‫שוב‬ ‫נתרגל‬‫בואו‬ ‫מסוג‬ ‫אובייקט‬ ‫ביחד‬ ‫ניצור‬Student.‫הכולל‬: ‫אתחול‬(Constructor.) ‫משתנים‬(Variables or Members). ‫תכונות‬(Properties). ‫מתודות‬‫או‬‫פונקציות‬(Methods).‫הוראה‬‫לאובייקט‬‫לעשות‬"‫משהו‬"‫עם‬‫ה‬"‫מצב‬"‫שלו‬. ‫ממשקים‬(Interfaces). ‫ירושות‬(Inheritance).‫נשאיר‬‫את‬‫זה‬‫לשלב‬‫יותר‬‫מתקדם‬. ‫דורון‬‫רייפמן‬,C#.Net
  • 5.
    Student ‫דורון‬‫רייפמן‬,C#.Net ‫עם‬ ‫אובייקט‬ ‫נראה‬‫איך‬ ‫זוכרים‬region. ‫ונקי‬ ‫מסודר‬. ‫בתוכן‬ ‫אותו‬ ‫נמלא‬ ‫בואו‬.
  • 6.
    ‫ותכונות‬ ‫משתנים‬ ‫מימוש‬ ‫דורון‬‫רייפמן‬,C#.Net ‫את‬‫לכם‬ ‫מזכיר‬propfull sniphet. ‫הגדרנו‬Member‫ו‬-Properties. ‫נוסיף‬ ‫בואו‬Constructor. ‫באובייקט‬ ‫לשימוש‬ ‫לב‬ ‫שימו‬ DateTime‫של‬.Net
  • 7.
    Constructors ‫דורון‬‫רייפמן‬,C#.Net ‫שני‬ ‫הוספנו‬Constructors ‫שונים‬ ‫לשימושים‬. ‫ערך‬‫של‬ ‫למנגנון‬ ‫לב‬ ‫שימו‬‫דיפולטיבי‬. ‫ב‬ ‫נשתמש‬ ‫בואו‬-Constructor.
  • 8.
    ‫דורון‬‫רייפמן‬,C#.Net ‫ב‬ ‫שימוש‬-Constructor‫ריק‬. ‫ערך‬ ‫של‬‫במנגנון‬ ‫שימוש‬ ‫דיפולטיבי‬. ‫ב‬ ‫שימוש‬-Constructor ‫המלא‬. ‫ב‬ ‫שימוש‬-ToString() ‫ב‬ ‫שימוש‬-String.Format(). ‫ב‬ ‫שימוש‬-Constructor
  • 9.
    Override & ToString ‫דורון‬‫רייפמן‬,C#.Net Override–‫מימוש‬ToString(). ‫הטקסטואלי‬‫הייצוג‬ ‫את‬ ‫העברנו‬ ‫עצמו‬ ‫לאובייקט‬. ‫אלגנטי‬ ‫יותר‬. ‫האובייקט‬ ‫של‬ ‫להדפסה‬ ‫כשקוראים‬ ‫ה‬ ‫בלי‬ToString‫עובד‬ ‫לא‬ ‫זה‬!
  • 10.
    override keyword ‫דורון‬‫רייפמן‬,C#.Net ‫בלי‬override‫יודע‬ ‫לא‬‫האובייקט‬ ‫התכונה‬ ‫את‬ ‫שדרסנו‬,‫כן‬ ‫אם‬ ‫אלא‬ ‫ל‬ ‫קוראים‬-ToString‫מפורשות‬. String.Format‫ל‬ ‫קורא‬- ToString‫ייצוגו‬ ‫את‬ ‫לקבל‬ ‫כדי‬ ‫הטקסטואלי‬. ‫בקורס‬ ‫מאוחר‬ ‫יותר‬ ‫בשלב‬ ‫ביסודיות‬ ‫בירושה‬ ‫נעסוק‬.
  • 11.
    ‫דורון‬‫רייפמן‬,C#.Net ‫ה‬ ‫את‬ ‫נתקן‬-main‫את‬‫ונוריד‬ ‫ל‬ ‫המפורשות‬ ‫הקריאות‬-ToString. ‫גם‬WriteLine‫דבר‬ ‫אותו‬ ‫עושה‬. ‫יודע‬ ‫שאובייקט‬ ‫מקובלת‬ ‫דרך‬ ‫זו‬ ‫ככה‬ ‫עצמו‬ ‫את‬ ‫להציג‬. ‫שלכם‬ ‫באובייקטים‬ ‫תממשו‬ ‫תמיד‬ ‫הטקסטואלי‬ ‫הייצוג‬ ‫את‬. ToString‫טקסטואלי‬ ‫ייצוג‬
  • 12.
    Object & TypeInfo ‫דורון‬‫רייפמן‬,C#.Net ‫הם‬ ‫המשתנים‬ ‫שכל‬ ‫כבר‬ ‫אמרנו‬ ‫אובייקטים‬. ‫את‬ ‫יורש‬ ‫אובייקט‬ ‫כל‬Object. Object‫אחד‬ ‫אף‬ ‫יורש‬ ‫לא‬. ‫ל‬-Object‫יש‬TypeInfo. ‫אפילו‬int‫אובייקט‬ ‫הוא‬.‫את‬ ‫יורש‬ ValueType. Is‫האובייקט‬ ‫סוג‬ ‫את‬ ‫מתשאל‬. Student‫האם‬ ‫לשאלה‬ ‫בחיוב‬ ‫יענה‬ ‫הוא‬Object‫אובייקט‬ ‫יורש‬ ‫הוא‬ ‫כי‬ ‫אותו‬ ‫שיורש‬.
  • 13.
    ‫שלמדנו‬ ‫מה‬ ‫של‬‫מעשי‬ ‫תרגול‬ ‫דורון‬‫רייפמן‬,C#.Net ‫מסוג‬ ‫אובייקט‬ ‫ממשו‬Subject,‫בכיתה‬ ‫ביחד‬ ‫שכתבנו‬ ‫למה‬ ‫בדומה‬.‫למימוש‬ ‫דגשים‬: •‫הבאים‬ ‫השדות‬ ‫לאובייקט‬:‫המקצוע‬ ‫שם‬,‫המרצה‬ ‫שם‬,‫השיעור‬ ‫מתקיים‬ ‫שבו‬ ‫ושעה‬ ‫יום‬,‫הכיתה‬ ‫שם‬. •‫בתוך‬ ‫מסודרים‬ ‫האובייקט‬ ‫חלקי‬region‫שנלמד‬ ‫כפי‬. •‫שנלמד‬ ‫כפי‬ ‫קידומת‬ ‫עם‬ ‫משתנים‬ ‫שמות‬( .m_t, m_n, m_c.) •‫הגדירו‬Members‫ו‬-Properties. •‫שני‬ ‫הגדירו‬Constructors. •‫הגדירו‬override‫פונקצית‬ ‫על‬ToString. •‫אותם‬ ‫ומדפיסה‬ ‫אובייקטים‬ ‫כמה‬ ‫שמייצרת‬ ‫ראשית‬ ‫תוכנית‬ ‫כתבו‬. •‫מסוג‬ ‫אובייקט‬ ‫של‬ ‫הירושה‬ ‫השתלשלות‬ ‫אחרי‬ ‫שמתחקה‬ ‫לולאה‬ ‫כתבו‬ ‫הראשית‬ ‫בתוכנית‬int. ‫בהצלחה‬
  • 14.
    Collection - ArrayList ‫דורון‬‫רייפמן‬,C#.Net Collections‫אובייקטים‬‫הינם‬ ‫רשימה‬ ‫בתוכם‬ ‫להחזיק‬ ‫שיכולים‬ ‫למערך‬ ‫בדומה‬ ‫אובייקטים‬ ‫של‬. ‫והם‬ ‫יכולות‬ ‫רבי‬ ‫האלה‬ ‫האובייקטים‬ ‫זמן‬ ‫את‬ ‫רבה‬ ‫במידה‬ ‫מקצרים‬ ‫הכתיבה‬. ‫אובייקט‬ ‫לכזה‬ ‫דוגמה‬ ‫ניקח‬ ‫בואי‬ ‫שנקרא‬ArrayList‫בעזרתו‬ ‫ונייצר‬ ‫מהדוגמא‬ ‫סטודנטים‬ ‫של‬ ‫רשימה‬ ‫בכיתה‬ ‫ביחד‬ ‫שעשינו‬.
  • 15.
    ArrayList(2) ‫דורון‬‫רייפמן‬,C#.Net ArrayList‫שונים‬ ‫מסוגים‬ ‫אובייקטים‬‫להחזיק‬ ‫יכול‬ (‫למערך‬ ‫בניגוד‬.) ‫אובייקט‬ ‫של‬ ‫ההצגה‬ ‫ביכולת‬ ‫לשימוש‬ ‫לב‬ ‫שימו‬ ‫בזכות‬ ‫שנרכשת‬ToString.‫את‬ ‫מדפיסים‬ ‫אנחנו‬ ‫סוג‬ ‫מאיזה‬ ‫לנו‬ ‫שאכפת‬ ‫בכלל‬ ‫מבלי‬ ‫הרשימה‬ ‫תכולת‬ ‫הם‬. ‫יש‬ ‫אובייקטים‬ ‫של‬ ‫סוגים‬ ‫מיני‬ ‫כל‬ ‫להיות‬ ‫שיכולים‬ ‫בגלל‬ ‫אותם‬ ‫למיין‬ ‫למשל‬ ‫קושי‬.‫הסדר‬ ‫יחס‬ ‫מה‬ ‫ברור‬ ‫לא‬.
  • 16.
  • 17.
    Interfaces ‫דורון‬‫רייפמן‬,C#.Net Interface‫לאמץ‬ ‫יכול‬ ‫שאובייקט‬‫משהו‬ ‫הוא‬, ‫קטן‬ ‫תכנותי‬ ‫במאמץ‬ ‫כלל‬ ‫בדרך‬. ‫מסוים‬ ‫ממשק‬ ‫אימץ‬ ‫שאובייקט‬ ‫ברגע‬,‫בעצם‬ ‫הוא‬ ‫הזו‬ ‫היכולת‬ ‫את‬ ‫לו‬ ‫שיש‬ ‫לעולם‬ ‫מכריז‬. ‫הזו‬ ‫היכולת‬ ‫את‬ ‫לו‬ ‫שיש‬ ‫ברגע‬,‫נפתחות‬ ‫בו‬ ‫שמשתמש‬ ‫למי‬ ‫רבות‬ ‫אפשרויות‬. ‫את‬ ‫נממש‬Icomparable‫מיון‬ ‫יכולת‬ ‫לקבל‬ ‫כדי‬
  • 18.
    Interfaces(2) ‫דורון‬‫רייפמן‬,C#.Net ‫ש‬ ‫נזכור‬-ArrayList‫להחזיק‬ ‫יודע‬ ‫שונים‬‫מסוגים‬ ‫אובייקטים‬. ‫מסוגים‬ ‫אובייקטים‬ ‫להשוות‬ ‫ניתן‬ ‫איך‬ ‫שונים‬? ‫איך‬ArrayList‫למיין‬ ‫יכול‬ ‫הוא‬ ‫אם‬ ‫יודע‬ ‫בכלל‬?‫לו‬ ‫יש‬ ‫אם‬ ‫האובייקט‬ ‫את‬ ‫שואל‬ ‫הוא‬ ‫היכולת‬ ‫את‬IComparable. ‫לו‬ ‫ואין‬ ‫במידה‬,‫ימיין‬ ‫ולא‬ ‫שגיאה‬ ‫יזרוק‬ ‫הוא‬. ‫שגיאה‬ ‫בדיקות‬ ‫קצת‬ ‫להכניס‬ ‫כדאי‬ ‫שלנו‬ ‫ההשוואה‬ ‫לפונקצית‬.
  • 19.
    ‫שלמדנו‬ ‫מה‬ ‫של‬‫מעשי‬ ‫תרגול‬ ‫דורון‬‫רייפמן‬,C#.Net ‫את‬ ‫ממשו‬IComparable‫סטודנט‬ ‫באובייקט‬.‫למימוש‬ ‫דגשים‬: •‫ברשימה‬ ‫האובייקטים‬ ‫בניית‬ ‫את‬ ‫כתבו‬. •‫אחרים‬ ‫מסוגים‬ ‫אובייקטים‬ ‫גם‬ ‫להכניס‬ ‫נסו‬.‫קורה‬ ‫מה‬ ‫תבדקו‬. ‫בהצלחה‬
  • 20.
    ‫דורון‬‫רייפמן‬,C#.Net •‫ב‬C#‫נוצר‬Object Instance‫בביצוע‬New. •‫לעוד‬ ‫שלנו‬‫האובייקט‬ ‫מסוג‬ ‫משתנה‬ ‫ונציב‬ ‫במידה‬ ‫כזה‬ ‫אחד‬,‫אובייקט‬ ‫לאותו‬ ‫יצביעו‬ ‫שניהם‬. •‫הקלעים‬ ‫מאחורי‬,C#‫מנהל‬Use count‫לכמה‬ ‫האובייקט‬ ‫על‬ ‫מצביעים‬ ‫משתנים‬.‫המשתנה‬ ‫מהסקופ‬ ‫ביציאה‬ ‫או‬ ‫בהשמה‬ ‫מתעדכן‬(‫בלוק‬, ‫פונקציה‬.)‫לאפס‬ ‫מגיע‬ ‫הערך‬ ‫כאשר‬,‫האובייקט‬ ‫ל‬ ‫נמסר‬-Garbage collector. •‫אובייקט‬ ‫לאותו‬ ‫נוסף‬ ‫עותק‬ ‫לייצר‬ ‫כדי‬.‫את‬ ‫נממש‬ Interface Clone.‫עליו‬ ‫אינפורמציה‬ ‫תחפשו‬ ‫אותו‬ ‫ותממשו‬. •‫את‬ ‫תיישמו‬ ‫הבית‬ ‫בתרגיל‬Clone‫לכל‬ ‫שלכם‬ ‫האובייקטים‬.‫תמיד‬ ‫לעשות‬ ‫תקפידו‬ ‫כך‬. Instances and reference to instances
  • 21.
    ‫אובייקטים‬ ‫על‬ ‫למדנו‬‫מה‬ ‫אתחול‬(Constructor.) ‫משתנים‬(Variables or Members). ‫תכונות‬(Properties). ‫מתודות‬‫או‬‫פונקציות‬(Methods).‫הוראה‬‫לאובייקט‬‫לעשות‬"‫משהו‬"‫עם‬‫ה‬"‫מצב‬"‫שלו‬. ‫ממשקים‬(Interfaces). ‫ירושות‬(Inheritance).‫נשאיר‬‫את‬‫זה‬‫לשלב‬‫יותר‬‫מתקדם‬. ‫דורון‬‫רייפמן‬,C#.Net
  • 22.
    ‫דורון‬‫רייפמן‬,C#.Net ●‫ידע‬ ‫והעמקנו‬ ‫אובייקטים‬‫בנושא‬ ‫חזרה‬ ‫עשינו‬.‫תרגול‬ ‫כולל‬ ‫נוסף‬.‫אובייקטים‬ ‫עם‬ ‫בנוח‬ ‫יותר‬ ‫מרגישים‬ ‫כבר‬ ‫אנחנו‬. ●Constructor. ●ToString.‫לעשות‬override(‫בירושה‬ ‫טכניקה‬.) ●‫באובייקט‬ ‫שימוש‬DateTime. ●Type info. ●‫על‬ ‫קצת‬Collections. ●‫אובייקטים‬ ‫של‬ ‫רשימה‬ ‫בניית‬. ●Interfaces. ‫אבקש‬‫לעבור‬‫בבית‬‫על‬ ‫הנושאים‬‫שנלמדו‬‫בכיתה‬ ‫ולתרגל‬‫את‬‫החומר‬‫הנלמד‬. ‫מה‬‫למדנו‬‫עד‬‫כה‬?
  • 23.
    ‫דורון‬‫רייפמן‬,C#.Net ‫הגשה‬ ‫מועד‬:‫הבא‬ ‫השיעור‬‫לפני‬ ‫יומיים‬(‫מוצ‬"‫בלילה‬ ‫ש‬( .)‫השיעור‬ ‫לפני‬ ‫לבדוק‬ ‫שאספיק‬ ‫כדי‬.) ‫הדוגמא‬ ‫עם‬ ‫הגעתם‬ ‫אליה‬ ‫מהנקודה‬ ‫נמשיך‬ ‫אנחנו‬.‫הבא‬ ‫השיעור‬ ‫לפני‬,‫הפתרון‬ ‫את‬ ‫לאתר‬ ‫אעלה‬ ‫לתרגיל‬ ‫שלי‬. ‫התרגיל‬ ‫תיאור‬: ‫ספר‬ ‫בית‬ ‫של‬ ‫חלקי‬ ‫לניהול‬ ‫אובייקטים‬ ‫נפתח‬ ‫בתרגיל‬. ‫של‬ ‫יכולות‬ ‫בעלי‬ ‫יהיו‬ ‫האובייקטים‬ ‫כל‬IClonable, IComparable‫את‬ ‫יממשו‬ ‫וכמובן‬ToString. ‫עם‬ ‫מסודרים‬ ‫יהיו‬ ‫האובייקטים‬ ‫שכל‬ ‫מדגיש‬ ‫אני‬Region‫שנלמד‬ ‫כפי‬.‫שנלמד‬ ‫כפי‬ ‫משתנים‬ ‫שמות‬ m_t, m_n, m_c‫וכדומה‬.‫יורדו‬20‫סדר‬ ‫חוסר‬ ‫על‬ ‫מהציון‬ ‫נקודות‬. ‫התרגיל‬ ‫בהערכת‬,‫עבר‬ ‫יהיה‬ ‫הציון‬/‫בלבד‬ ‫נכשל‬.‫בסדר‬ ‫היה‬ ‫לא‬ ‫מה‬ ‫על‬ ‫שלי‬ ‫הערות‬ ‫יתקבלו‬ ‫ולא‬ ‫בתרגיל‬.‫גדולות‬ ‫הגשה‬ ‫עבודות‬ ‫בגדר‬ ‫לא‬ ‫שהם‬ ‫התרגילים‬ ‫כל‬,‫ביחד‬ ‫כולם‬ ‫יהוו‬,‫מסוים‬ ‫אחוז‬(10- 20%)‫הסופי‬ ‫מהציון‬. ‫ב‬ ‫רק‬ ‫צורך‬ ‫שיש‬ ‫מדגיש‬ ‫אני‬-Shallow Clone‫של‬ ‫במימוש‬Interface IClonable. ‫מספר‬ ‫תרגיל‬1‫להגשה‬(1:)
  • 24.
    ‫דורון‬‫רייפמן‬,C#.Net ‫האובייקטים‬ ‫רשימת‬: ‫אובייקט‬Student‫מידע‬ ‫מכיל‬‫שרק‬,‫בכיתה‬ ‫שתורגלה‬ ‫מהדוגמא‬ ‫אותו‬ ‫קחו‬. ‫ה‬ ‫יכולת‬ ‫את‬ ‫לו‬ ‫להוסיף‬ ‫נדרשים‬ ‫אתם‬-Clone. ‫המקצועות‬ ‫רשימת‬ ‫את‬ ‫גם‬ ‫לו‬ ‫להוסיף‬ ‫נדרשים‬ ‫אתם‬,‫ב‬ ‫ריקה‬ ‫לרשימה‬ ‫שתאותחל‬-Constructor.‫מסוג‬ ArrayList. ‫כן‬ ‫כמו‬,‫כמה‬ ‫תממשו‬ ‫אתם‬Method:1.FindSubject‫מקצוע‬ ‫שם‬ ‫לפי‬.2.AddSubject‫אובייקט‬ ‫שמקבל‬ ‫מסוג‬Subject. ‫אובייקט‬Subject,‫המורה‬ ‫ושם‬ ‫המקצוע‬ ‫שם‬ ‫שיכיל‬. ‫בכיתה‬ ‫תלמידים‬ ‫רשימת‬ ‫לו‬ ‫תהייה‬ ‫בנוסף‬,‫מסוג‬ ‫ריקה‬ ‫לרשימה‬ ‫שתאותחל‬ArrayList‫ב‬-Constructor. ‫כמה‬ ‫נייצר‬ ‫הזה‬ ‫לאובייקט‬Method.1.FindStudent,‫ברשימת‬ ‫אותו‬ ‫ומוצאת‬ ‫סטודנט‬ ‫שם‬ ‫שמקבלת‬ ‫בכיתה‬ ‫הסטודנטים‬.2.AddStudent‫הזה‬ ‫למקצוע‬ ‫אותו‬ ‫ומוסיפה‬ ‫תלמיד‬ ‫מסוג‬ ‫אובייקט‬ ‫שמקבלת‬. ‫אובייקט‬School,‫הספר‬ ‫בית‬ ‫שם‬ ‫שיכיל‬,‫המקצועות‬ ‫של‬ ‫ורשימה‬ ‫הסטודנטים‬ ‫של‬ ‫רשימה‬,‫מסוג‬ ‫שניהם‬ ArrayList. ‫כמה‬ ‫נייצר‬ ‫הזה‬ ‫לאובייקט‬Method.1.FindStudent,‫ברשימת‬ ‫אותו‬ ‫ומוצאת‬ ‫סטודנט‬ ‫שם‬ ‫שמקבלת‬ ‫הכללית‬ ‫הסטודנטים‬.2.AddStudent‫התלמידים‬ ‫רשימת‬ ‫אותו‬ ‫ומוסיפה‬ ‫תלמיד‬ ‫מסוג‬ ‫אובייקט‬ ‫שמקבלת‬.3. FindSubject‫המקצועות‬ ‫ברשימת‬ ‫אותו‬ ‫ומוצאת‬ ‫מקצוע‬ ‫שם‬ ‫שמקבלת‬.4.AddSubject‫אובייקט‬ ‫שמקבלת‬ ‫המקצועות‬ ‫לרשימת‬ ‫אותו‬ ‫ומוסיפה‬ ‫מקצוע‬ ‫מסוג‬. ‫מספר‬ ‫תרגיל‬1‫להגשה‬(2:)
  • 25.
    ‫דורון‬‫רייפמן‬,C#.Net ‫הראשית‬ ‫התוכנית‬: ‫התלמידים‬ ‫לרשימת‬‫נוסיף‬20‫ייחודים‬ ‫שמות‬ ‫עם‬ ‫תלמידים‬. ‫המקצועות‬ ‫לרשימת‬ ‫נוסיף‬20‫ייחודיים‬ ‫שמות‬ ‫עם‬ ‫מקצועות‬. ‫הראשונים‬ ‫המקצועות‬ ‫לחמשת‬ ‫הראשונים‬ ‫תלמידים‬ ‫חמישה‬,‫וכך‬ ‫השניים‬ ‫המקצועות‬ ‫לחמשת‬ ‫השניים‬ ‫החמישה‬ ‫הלאה‬. ‫תלמיד‬ ‫למקצוע‬ ‫שנוסיף‬ ‫פעם‬ ‫שבכל‬ ‫כמובן‬,‫שלו‬ ‫המקצועות‬ ‫לרשימת‬ ‫מקצוע‬ ‫לתלמיד‬ ‫גם‬ ‫נוסיף‬. ‫בה‬ ‫שמשתתפים‬ ‫התלמידים‬ ‫רשימת‬ ‫את‬ ‫מקצוע‬ ‫ולכל‬ ‫המקצועות‬ ‫רשימת‬ ‫את‬ ‫לקונסול‬ ‫שמדפיסה‬ ‫לולאה‬ ‫בצעו‬. ‫משתתף‬ ‫הוא‬ ‫בהם‬ ‫המקצועות‬ ‫רשימת‬ ‫את‬ ‫תלמיד‬ ‫ולכל‬ ‫התלמידים‬ ‫רשימת‬ ‫את‬ ‫לקונסול‬ ‫שמדפיסה‬ ‫לולאה‬ ‫בצעו‬. ‫בהצלחה‬. ‫להדגיש‬ ‫רוצה‬ ‫אני‬: •‫הפרויקט‬ ‫של‬ ‫שלכם‬ ‫הזיפ‬ ‫שליחת‬ ‫את‬ ‫יחסום‬ ‫לא‬ ‫שהמייל‬ ‫כדי‬:‫מחיצות‬ ‫את‬ ‫למחוק‬:Bin, Obj. •‫ה‬ ‫עם‬ ‫הפרויקט‬ ‫כל‬ ‫של‬ ‫זיפ‬ ‫לשלוח‬ ‫יש‬-Solution. ‫מספר‬ ‫תרגיל‬1‫להגשה‬(3:)