
הטקסט המלא של הדקות הראשונות בהרצאה «אובייקטים ומחלקות CLASS - תכנות מונחה עצמים בשפת Dart» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אז בסרטון הזה אני עמד על מחלקות. הגדרה של מחלקות היא לא שונה כל כך משפות אחרות. אם לדוגמה אנחנו רוצים להגדיר מחלקה שתייצג כלי רכב.
נרשום class vehicle כאן נגדיר בפנים את השדות שלנו. אז לדוגמה יש לנו שדה שאומר מייצג את מספר המנויים. אז זה יהיה int num of engines מספר מנויים יותחל ל-1.
ומספר נוסף סליחה משתנה בוליאני שיגיד האם הכלי הזה יכול לעוף. is pliable אוקיי ויש לנו משתנה נוסף סטרינגי שמייצג את המודל וסטרינג נוסף שמייצג את היצרה.
אוקיי עכשיו ניצור מופע של אותה מחלקה. אז זה שובר car1 שווה new ויקל ונדפיס את מספר מנויים. print car1.nom of engines מעולה אחד בדיוק כמו שציפינו.
עכשיו בואו נדפיס לדוגמה את isFlyable null וזה מביא אותנו לנקודה מאוד חשובה. משתנים שלא הוטחלו בדארט מקבלים ערך נ"ל שלא כמו בשפות אחרות שבוליאן מקבל למשל את הערך false בדפולט ואינט מקבל את הערך 0 אלא בדארט הם נ"ל ואנחנו חייבים להתחיל אותם כבר בהגדרה אחרת הם פשוט יישארו נ"ל.
אז אם נדפיס עכשיו את isFlyable נקבל false. דבר נוסף לגבי דארט כשאנחנו רוצים ליצור מופעים חדשים אנחנו יכולים להשמיט את המילה new זה מאוד עוזר לנו כי בפלאטר אנחנו מייצרים מופעים כמעט בכל שורה וזה תורם המון לנראות וגם חוסך בקוד.
עכשיו בוא נעבור לגטרס וסטרס אז קודם כל כדי ליצור משתנה פרייבט בדארט אנחנו צריכים להוסיף את הטאב אנדרסקור לפני שם המשתנה. לדוגמה עכשיו isFlyable הפך להיות פרייבט אז איך בכל זאת נוכל לגשת אליו?
באמצעות גטרס וסטרס איך ניצור אחד? נרשום בול get isFlyable ונחזיר את המשתנה הפרטי isFlyable ועכשיו כשאנחנו פונים כאן בפרינט car1.isFlyable אנחנו אנחנו פונים למעשה לפונקציית גטר שמחזירה את הערך של המשתנה הפרטי underscore is flyable בואו נריץ אוקיי קיבלנו false מה לגבי set
שאנחנו רוצים לערוך את המשתנה נרשום set is flyable וזאת תהיה למעשה פונקציה שמקבלת ערך שנקרא לו var ואז underscore is flyable שווה לval אבל כמו שלמדנו נוכל ליצור פונקציית חץ ולעשות את כל הסיפור הזה טיפה יותר מהיר אז is flyable יהיה פונקציית חץ שמקבלת פרמטר var ומה שהיא מבצעת זה פקודה אחת isFlyable שווה ל-val מעולה.
אז עכשיו אנחנו רוצים להוסיף פונקציה או מתודה למחלקה שלנו. נקרא לה printData שהיא פשוט תדפיס את כל הנתונים במחלקה.
אז נרשום printData שימו לב שלא רשמתי מה הפונקציה מחזירה כי למעשה זה void אפשר לרשום void אבל זה די מיותר אני פשוט אמחק את זה. אז printData פשוט תדפיס את כל הנתונים אז קודם כל נשים את הסטרינג שלנו במשתנה ואז נדפיס אותו אז נרשום var str שווה למשהו שתכף נערוך ובסוף print str אז למה str שווה? נרשום num of n ג'ינס
יהיה שווה ל... וכאן נשים string interpolation של num of n ג'ינס ואז נראה את שהוא ראה באמצעות backslash ו-n ניהוליים ונרשום is pliable נקודתיים ואז עוד פעם string interpolation ונדפיס את is pliable.
בואו נראה מה קורה עד עכשיו. אז במקום להדפיס את car1.isflabel נדפיס את car1. סליחה לא צריך להדפיס שום דבר כי הפונקציה print היא כבר מדפיסה אז פשוט נפעיל אותה.
car1.printdata. num of engine זה 1. isflabel זה false. מעולה. בואו נמשיך. דק סלאש n לרדת שורה מודל נקודתיים string interpolation עם מודל נרד עוד שורה מניופקצ'ואר נקודתיים string interpolation עם מניופקצ'ואר נרד שוב.
אוקיי. כמובן שמודל ויצרן הם פשוט נ"ל כרגע. עכשיו נעבור לקונסטרקטורים, בנאים. אז כמו בכל שפה כדי ליצור קונסטרקטור פשוט נרשום את שם המחלקה וכאן נוכל להתחיל את הסודות שלנו איך שנרצה.
אין כאן שום חידוש. אבל Dart מאפשרת לנו ליצור מה שנקרא Named Constructor ואיך עושים את זה? אם לדוגמה נרצה ליצור מופעים של וייקל אבל אנחנו כבר יודעים מה הולך להיות, לדוגמה אנחנו רוצים ליצור עכשיו מטוס אז נרשום ויקל נקודה פליין ואז יצרנו named constructor זאת אומרת כאן
אנחנו נתחיל את המופעים כאילו הם כבר למעשה