
new.name ושם החבר Name הם שני משתנים שונים, כי ההבדל באות הגדולה משנה.public Car(string name, int year)Car myCar = new Car("מזדה", 2010);הטקסט המלא של הדקות הראשונות בהרצאה «בנאי המחלקה Constructor (הסבר נוסף)» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, ההרצאה הנוכחית תעסוק בנושא שנקרא קונסטרקטור. זה נושא שהוא קרוב מאוד למחלקה, אם אתם זוכרים שלמדנו אותו באחד השיעורים הקודמים ואפילו נגעתי בו קצת אבל לא באופן מדויק ואמרתי שאני אסביר אותו בהמשך.
אז השיעור הזה אני עומד להסביר מה זה בעצם. אז קודם כל בואו נלך לחלקות שלנו של המכונית שיצרנו. עכשיו אם אתם זוכרים, יצרנו קלאס שנקרא car ונתנו לו כל מיני משתנים שהמשתנים האלה למעשה מאפיינים את המחלקה הזאת שנקראת car, כמו השם של המכונית, כמו שנת הייצור שלה,
הצבע שלה. אפשר למעשה להוסיף פה, בואו נוסיף פה עוד איזה משתנה שנקרא לו, נגיד נקרא לו, משתנה מסוג של בול דווקא.
נגיד שמשתנה מסוג של בול שנקרא לו roof, או משתנה שנקרא is roof exist. האם קיים גג, משתנה שמקבל true או false, אם קיים גג או לא קיים גג.
עכשיו, כשיצרנו את האובייקט הזה פה, זוכרים, עשינו new car, קיבלנו פה את המצביע לאובייקט של הcar, בואו אפילו נפתח את התמונה שתהיה לנו מול העיניים של התרשים שיצרתי, אז פה קיבלנו למעשה את המצביע לאובייקט שיצרנו לcar.
ואז אנחנו פה נתנו למכונית כל מיני ערכים, את הצבע שלה, נתנו, כתב לנו מה יהיה השם שלה. עכשיו זאת באמת דרך אחת שאפשר לתת ערך למשתנים, אבל דרך אחרת, למעשה יותר נכונה, יותר רשמית אפשר להגיד, זה על ידי זה שכאשר יוצרים את הרכב, בעת היצירה של הרכב באזור הזה נותנים לו את המשתנים,
וזה מתקשר לסיבה שאני שם פה את הסוגר הזה, ואת הסוגר הזה, אוקיי? זה נראה למעשה כמו קריאה לפונקציה. אם אתם זוכרים, אני עכשיו עושה נגיד mycar.drive יש פה גם פתיחה של סוגריים וסגירה של סוגריים.
אני קורא פה לפונקציה, לפונקציה שנקראת תנהג, תתחיל לנהוג, תתחיל לנסוע. אז פתיחה של סוגריים וסגירה של סוגריים זה קריאה לפונקציה. ופה יש פה גם באמת קריאה של פונקציה, אוקיי?
זה ממש אותו דבר, יש פה קריאה של פונקציה, אבל השאלה לאיזה פונקציה קוראים. לפי מה שאני רואה פה, יש פה קריאה לפונקציה שנקראת car. אז באמת יש פונקציה כזאת שנקראת car, אתם לא רואים אותה פה, אבל היא קיימת.
אז לפני שאני אסביר למה אתם לא רואים אותה פה, אני אסביר בעצם מה זה קונסטרקטור. אז קונסטרקטור זה פונקציה שהיא מקבלת את השם של המחלקה.
אז במקרה שלנו למחלקה קוראים לה car, אז אם אנחנו נכתוב car ונעשה את הדבר הבא, יש פה פונקציה, היא נראית כמו פונקציה למרות שאין לה פה ערך שהיא מחזירה, אוקיי? אתם לא רואים לפני השם של הפונקציה את הערך, היא לא מחזירה סטרינג או לא מחזירה אינט, והיא לא מחזירה ווייד שזה כלום.
אין לה שום ערך שהיא מחזירה פה, אין לה שום דבר. קונסטרקטור זה פונקציה, כמו שאתם רואים פה, שמקבלת את השם של המחלקה, כמו שאמרתי, אוקיי? היא לא מחזירה שום ערך אבל התפקיד שלה זה לאתחל את המשתנים של המחלקה, אוקיי?
אמרתי לך מילה חדשה שאתם לא מכירים אותה, להתחל. להתחל זה לתת ערכים התחלתיים, לתת ערכים בפעם הראשונה. אז אם עכשיו לדוגמה, בדוגמה שלנו פה, יצרתי פה משתנה מסוכר, פה אני נתנתי ערכים התחלתיים לאובייקט הזה כר.
נתתי לו רד, נתתי לו את השם שלו מזדה, נתתי לו ערכים התחלתיים. עכשיו, אני יכול לעשות את הדבר הזה באותה מידה דרך הפונקציה הזאת שנקראת קונסטרקטור.
בעברית זה נקרא בנאי, אבל בואו נישאר כרגע עם המילה באנגלית שיותר מקובלת ולטעמי יותר מתקשרת. אז הפונקציה הזאת שנקראת קונסטרקטור יכולה, כמו כל פונקציה רגילה, היא יכולה לקבל פרמטרים.
אז אם פה בפונקציה הזאת עיקר, אני יכול להגדיר לה פרמטרים. אני יכול להגדיר לה נגיד את הפרמטר string שנקרא name, ולהגדיר לה עוד פרמטר שהיא מקבלת שנקרא לדוגמה year שהוא מסוג של int.
אוקיי, עכשיו כשאני עכשיו ניגש ל.. כשאני עכשיו יוצר את האובייקט הזה אוקיי שימו לב שיש לי