
class) ב-Swift דומה מאוד לסטרקט בהרבה מובנים: יש לה תכונות, בנאי ופעולות. ההבדל המרכזי הוא שהמחלקה מאפשרת ירושה, ובמחלקה צריך לכתוב בנאי בעצמנו.class במקום struct. בדוגמה של סטודנט, המחלקה כוללת שם פרטי, שם משפחה ומספר סטודנט מסוג מחרוזת.init, או לתת ערך ברירת מחדל לכל תכונה.self, בדומה לסטרקט.הטקסט המלא של הדקות הראשונות בהרצאה «מחלקות - Swift Classes» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום וברוכים הבאים בסרטונים הקודמים ראינו טייפים שונים בסוויפט ראינו אסטרקטים אינאמים וכן הלאה והיום סוף סוף אנחנו יכולים לדבר על אחד הטיפוסים השימושיים ביותר הלאו מחלקות מחלקה בהרבה מובנים דומה מאוד למה שהכרנו לגבי אסטרקטים בואו נייצר מחלקה ביחד אני מייצר לעצמי new file ובואו נייצר מחלקה
נקרא לקלאס הראשון שלנו student אתם תראו שבסך הכל זה מאוד מאוד דומה למה שהגדרנו כסטרקטי. אני פשוט במקום לרשום את ה-Keyword Struct אנחנו נרשום Class, אוקיי?
עכשיו לקלאס שלנו אנחנו נקרא Student שזה סטודנט אחד ואמרנו שבעצם סטודנט זה מכלול של תכונות כי זה בעצם קלאס או סטראקט דיין מכלול של תכונות אובייקט טיפוס מורכב כאן אנחנו רוצים שיהיה לנו First Name מסוג String, אוקיי? עכשיו בוא נשים פה שנייה איזשהו ערך ברירת מחדל ונדבר אוקיי אז זה די
דומה למה שאנחנו מכירים אלא שבכל זאת יש הבדלים מצד אחד קלאסים הם יותר משוכללים הם יודעים לעשות דברים שסטראקטים לא יודעים לעשות מצד שני הפעם אני חייב לרשום את הבניים בואו נחליט שנייה איזה תכונות אנחנו רוצים עבור הסטודנט שלנו נגיד שיש לי first name last name ובוא נאמר מספר סטודנט אז רגע last name string ויש לנו את הסטודנט
איי-די שלנו שאיתו אנחנו מקבלים הנחות בכל מיני מקומות כמובן אפשר להוסיף פה המון תכונות כמו רשימת ציונים מה שכן שימו לב אני מנסה לשמור והקומפיילר צועק עליי שעוד לא עשינו פה init כלומר עבור קלאסים אנחנו לא מקבלים init בחינם ואני כן יכול להתחיל את התכונות באיזושהי צורה
אבל אנחנו חייבים פה store property אמרנו תכונה שמורה אין לה value רואים אנחנו לא קיבלנו פשוט בנאי אחרת זה היה מסתדר בוא נראה מה קורה אם יהיה לי בנאי אנחנו נייצר לעצמנו פונקציית init שב-init שלנו נקבל את ה-first name מסוג string last name מסוג string וגם את ה-student id מסוג string
ואז נוכל לשמור אותם נכון על זה דיברנו בשיעור הקודם אז אני בטוח שאתם יודעים לכתוב את זה מצוין אז אני פשוט נשלים פה את הפונקציית init יפה אז עכשיו ברגע שיצרנו את הבנאי אז בעצם אנחנו יודעים שהתכונות יותחלו נכון פונקציית init פונקציית בנאי למה בעצם הקומפיילר כל
כך התלונן ורצה להכריח אותי לעשות בנאי קודם כל בנאי זה מאוד שימושי רוצים לייצר סטודנט אתם בטח תרצו להשתמש בבנאי ולהכניס ישר פה את כל התכונות כמו שצריך רואים נגיד שם פרטי שם משפחה אחרת אין לזה משמעות אוקיי אז כן, אז ככה אנחנו יכולים להתחיל סטודנטים בצורה טובה בעזרת פונקציית הבנאי.
אנחנו מקווה מתרשמים שקלאסים מאוד מאוד דומים לסטרקטים, רואים? מאוד מאוד דומה. פרופרטיס, אינית, אפשר להגדיר פה פעולות.
כל מה שידענו לגבי סטרקטים הוא תקף גם לכאן, אפשר להגדיר את אותם דברים, פונקציות, פעולות, תכונות מחושבות, תכונות שמורות, כל הדברים הללו.
כמו שאמרתי לכם, קלאסיים הם יותר משוכללים ואת זה אנחנו נראה בשיעורים הבאים רק רציתי להגיד פה עוד דבר אחד למה בעצם swift מכריחה אותי לייצר אינית חוץ מהעובדה שזה באמת מתבקש אני רוצה להתחיל את התכונות אחרת למה אני צריך אותן בכלל אבל דבר סיבה נוספת ובעצם מה שהקומפיילר צועק עליי פה אומר לי אם אתה תשים פה איזשהו ערך ברירת מחדל תרצה לקרוא לכל הסטודנטים קלוני
אלמוני לא שאני ממליץ על זה בשום צורה אבל אם תרצה לתת לאיזשהו ערך ברירת מחדל אז הכל יהיה בסדר. למה? כי אמנם לא קיבלנו בנאי כזה יפה מהקומפיילר אבל נוכל עדיין לייצר מופע של הסטודנטים, נוכל להגיד let s שווה סטודנט חדש כי בעצם רק על ידי בנאי ריק שאותו קיבלנו, אתם רואים כביכול נוצר עבורי בנאי ריק
וכל התכונות הללו מהותכלות לערכים שאתם רואים כאן ואז אפשר יהיה איכשהו להכניס את התכונות בצורה קצת פחות נוחה רואים אבל לפחות יש לנו עדיין את האופציה הזאת להתנהל בלי בנאי אסור לי לכתוב קוד דרך אגב כאן בlevel הזה אנחנו כמובן
משתמשים בזה אך ורק לדוגמאות ואת כל הקוד האמיתי שאנחנו רוצים להריץ אנחנו כותבים בbeauty blog נכון מותר לי לעשות פה רק הכרזות על משתנים אסור לי להתחיל לעשות פה השמות ולולאות