
Manager מהמחלקה Employee, שיורשת את Person, הבנאי של Person רץ ראשון, אחריו Employee, ואחריו Manager. גם אם הקריאה מתחילה בבנאי של המנהל, הקוד של הבסיס מתבצע קודם.Manager רץ ראשון, אחריו Employee, ואחריו Person, כלומר בסדר הפוך.Person, ואחר כך מתווספים לו שדות של Employee ושל Manager. בסוף יש אובייקט אחד שמכיל את כולם.הטקסט המלא של הדקות הראשונות בהרצאה «שלבי יצירת אובייקט» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
כאשר ראינו את הקונספט של הורשה אז ראינו בעצם שניתן לבנות מחלקת בסיס בדוגמה הזאת פרסון ומחלקה שיורשת אותה לדוגמה אמפלואי אם אמפלואי היא כמובן גם פרסון מחלקה מנאג'ר שיורשת את אמפלואי אם מנאג'ר רוצה להרחיב את היכולות של אמפלואי ולבסוף אנחנו יכולים
להשתמש בכל אחת מהמחלקות האלה לדוגמה אנחנו יכולים ליצור מנאג'ר מיי מנאג'ר שווה ניו מנאג'ר ובסרטון הזה אנחנו הולכים לראות משהו שהוא די חשוב והוא נקרא סדר היצירה של האובייקט.
אם אנחנו מסתכלים אנחנו רואים שיש כאן אובייקט אחד ויחיד שאנחנו יצרנו אבל חשוב לנו להבין מה קורה תוך כדי היצירה שלו.
למה חשוב לנו להבין את זה? מפני שבהמשך בעולם הפולימורפיזם אנחנו נתעסק עם הנתון הזה של מה בדיוק מרכיב את אותו אובייקט שנוצר אם המחלקה שלו באה מתחום ההורשה.
אז בואו ניכנס רגע למנאג'ר ונראה שבמנאג'ר יש לנו קונסטרקטור וכל מה שאנחנו רוצים לעשות זה להציג כאן איזושהי הודעה בקונסטרקטור שתגיד לנו שאנחנו נמצאים בקונסטרקטור של מנאג'ר.
לאחר מכן נלך למחלקה האמפלואי, נאתר את הקונסטרקטור שלה ונגדיר שאנחנו בקונסטרקטור של אמפלואי. לבסוף ניגש לקונסטרקטור של פרסון, הנה הוא פה אנחנו מתעסקים כרגע עם הקונסטרקטורים הריקים וכעת אנחנו רוצים לבצע הרצה של התוכנית ולראות מי מוצג קודם
אז אנחנו ראינו כבר שקודם כל הולך להתבצע קונסטרקטור של מנאג'ר לאחר מכן של אמפלואי ולאחר מכן של פרסון ואנחנו יכולים לראות את זה בואו נריץ ונראה בעצם שהסדר אומר למרות שהקונסטרקטור של מנאג'ר התבצע אבל הייתה מיד קפיצה לאמפלואי ולפרסון ואנחנו רואים שקודם כל הקונסטרקטור של פרסון
בכלל מתבצע לאחר מכן של אמפלואי ולאחר מכן של מנאג'ר. אם אנחנו עכשיו מבצעים דיסטרקטור בכל אחד מהם, בואו נלך לפרסון ונרשום דיסטרקטור עבור פרסון, הודעה, נעתיק את הדיסטרקטור הזה לאמפלואי כך שגם אמפלואי יכין דיסטרקטור עם הודעה מתאימה ונבצע
דיסטרקטור נוסף דה מנאג'ר. כעת בוא נריץ ונראה מה הסדר של הדיסטרקטורים. עכשיו אנחנו רואים שקודם כל person נוצר, לאחר מכן employee, לאחר מכן manager, אבל סדר ההריסה הוא הפוך, manager נהרס, לאחר מכן employee, לאחר מכן person.
זאת אומרת, אנחנו רואים שכאשר ישנה הורשה, person זה ה-base, יורש אותו employee ויורש את ה-employee Manager, אז סדר יצירת כל האובייקטים האלה הוא מבפנים החוצה.
זאת אומרת, קודם כל פרסון, לאחר מכן אמפלואי, לאחר מכן מנאג'ר. סדר הריסת האובייקט הוא מבחוץ פנימה, למרות שהאובייקט נערף בסופו של דבר בבת אחת.
אוקיי, אחרי שראינו את זה, בואו נסתכל רגע מה זה אומר לנו מבחינת ה-data members שנוצרים.
יש לנו פה מצגת שמציגה בדיוק מה קורה כאשר אתם יוצרים מנאג'ר, מיימנאג'ר שווה ניו מנאג'ר שיורש את אמפלואי ואמפלואי יורש את פרסון. מה שהמערכת עושה היא קודם כל יוצרת אובייקט פרסון אם לפרסון יש first name ו last name זה בעצם מה שהיא יוצרת בגלל שנוצר קודם כל אובייקט פרסון אז מופעל הקונסטרקטור של פרסון אפילו שראינו שמתבצעת ריצה לקונסטרקטור של
מנג'ר וממנו מתבצעת העברה לקונסטרקטור של אמפלואי ממנו מתבצעת העברה לקונסטרקטור של פרסון עדיין הגוף של הקונסטרקטור של פרסון מתבצע זאת אומרת, אם אנחנו מסתכלים על איזה אובייקט באמת נוצר לנו פה, קודם כל נוצר האובייקט פרסון, והוא זה שתופס ראשון את הזיכרון, ועכשיו, זאת נקודה מאוד חשובה שאנחנו הולכים
להשתמש איתה בהמשך. מי שתופס ראשון את הזיכרון זה אובייקט פרסון. בעת, מה שקורה זה שמבחינת המערכת יש לנו פה אובייקט פרסון אחד, וה-first name וה-last name זה חלק מהאובייקט פרסון.
לאחר מכן, מה שקורה זה שהמערכת מוסיפה את ה-data ממברס ששייכים למי שירש את פרסון, אמפלואי, במקרה שלנו זה סלארי, ומופעל הקונסטרקטור של אמפלואי לגמרי, בגוף של הקונסטרקטור מופעל.
זאת אומרת שאפשר להגיד עכשיו שיש לנו פה אובייקט אמפלואי, אבל שימו לב שהאובייקט אמפלואי שלנו הוא לא סלארי, האובייקט אמפלואי שלנו זה כל מה שאתם רואים כרגע, כי אמפלואי בנוי גם מאובייקט פרסון וגם מהתוספת שנכתבה באמפלואי,
כלומר מהסלארי, זאת אומרת האובייקט שמרכיב את אמפלואי זה first name last name וסלארי שלושתם ביחד זה אובייקט אמפלואי אז למרות שאפשר להגיד שמצאו פה כביכול שני אובייקטים זה מה שיותר נכון לראות שקרה כאן זה שפרסון נוצר כאובייקט נפרד
אבל הוא הושלם לאחר מכן לאמפלואי והאובייקט אמפלואי בעצם הוא החלק של פרסון פלוס התוספת של אמפלואי אם אנחנו נמשיך אנחנו נראה שכמובן אנחנו יצרנו פה את מנאג'ר ונוצר לנו פה הבונוס וזה בעצם עוד דאטה ממבר שהתווסף לאובייקט עצמו מה שקורה אחר כך זה שכל הדאטה ממברס האלה כל הדאטה ממברס האלה first name last name salary ובונוס כולם
מרכיבים את האובייקט מנאג'ר אז מה שאנחנו רואים פה במצגת הזאת זה בעצם הסדר של היצירה של האובייקטים כביכול נוצרו פה שלושה אובייקטים שונים. בפועל מבחינתנו בקוד יש אובייקט אחד, והאובייקט הזה נקרא מיימנג'ר והסוג שלו זה