PracticU

מחלקה sealed

בלי כתוביותעם כתוביות
PracticU › קורס תכנות מונחה עצמים - OOP - Object Oriented Programming - חומר לימוד של מדעי המחשב › מחלקה sealed
מילון מושגים:
מחלקה - תבנית בתכנות מונחה עצמים שמגדירה אילו נתונים ופעולות יהיו לאובייקטים שנוצרים ממנה.
קומפיילר - תוכנה שממירה קוד מקור שנכתב בשפת תכנות לקוד שהמחשב יכול להריץ, ומדווחת על שגיאות תחביר.
לוג - רישום מתועד של אירועים ופעולות שמתרחשים במערכת או בתוכנה, המשמש למעקב ולאיתור תקלות.
.NET - פלטפורמת פיתוח של מיקרוסופט להרצת יישומים בשפות כמו C#, הכוללת ספריות וסביבת ריצה משותפות.
מחרוזת - סוג נתונים שמייצג רצף של תווים, כלומר טקסט, ומשמש לאחסון מילים, משפטים או כל רצף סימנים.

מחלקה sealed
המרצה מסביר מחלקה שהוגדרה כ-sealed, כלומר מחלקה שאי אפשר לרשת ממנה. זה ההפך מהורשה רגילה, והשאלה שהוא מעלה היא מתי בכלל כדאי לחסום הורשה.
איך זה עובד
1. הגדרה: מוסיפים את המילה sealed לפני class. בדוגמה המחלקה EmailSender שולחת מייל, והקוד לשליחה נמצא בתוכה.
2. ניסיון הורשה: אם כותבים מחלקה שיורשת את EmailSender, הקומפיילר מציג שגיאה: לא ניתן לרשת מטיפוס sealed.
3. מתי לחסום: כשלמחלקה יש תפקיד ברור והיא עובדת נכון, ואין סיבה שמישהו ירחיב אותה. לפני החתימה כדאי לחשוב אם ייתכן צורך אמיתי בהרחבה, למשל שמירה ליומן.
4. דוגמה מ-.NET: המחלקה String מוגדרת כ-sealed, כי היא נפוצה מאוד ו-Microsoft לא רצתה שמפתחים ייצרו ממנה מחלקות נגזרות.
שימו לב
חתימה של מחלקה היא אפשרות נדירה יחסית, ואפשר לבדוק אותה בתרגיל: בוחרים מחלקה שאפשר לחתום, יוצרים אותה כ-sealed, מנסים לרשת ממנה ורואים את שגיאת הקומפילציה. כך מבינים מה החתימה מונעת בפועל.
השיעור הבא בקורס: הסבר על Override בתכנות מונחה עצמים

פרקי ההרצאה: מחלקה sealed

  1. 00:00

    מהי מחלקת sealed

  2. 00:57

    דוגמת מחלקה לשליחת מייל

  3. 01:34

    בניית מחלקת email sender

  4. 04:06

    מחלקה שאין טעם לרשת

תמלול ההרצאה: מחלקה sealed

הטקסט המלא של הדקות הראשונות בהרצאה «מחלקה sealed» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:01

    הדבר הבא שאנחנו הולכים לראות גם הוא קשור לעולם ההורשה וזה פשוט מאוד מחלקה שמוגדרת כסילד. סילד זה חתום או חתומה. מה זה אומר מחלקה שהיא חתומה?

  2. 00:17

    מחלקה שהיא חתומה זה אומר מחלקה שלא ניתן לרשת אותה. לכן הקונספט של סילד קשור לתחום של הורשה. אבל זה בעצם מבטל הורשה.

  3. 00:26

    עכשיו, למה לנו להגביל דבר כזה? הרי אם אנחנו בונים מחלקה, למה לנו למנוע מאנשים בעתיד לרשת את המחלקה וליצור ממנה מחלקה נוספת ולהוסיף לה יכולות? אז למעשה הסיבה היא כי אין שום צורך לרשת את המחלקה הזאת בעתיד והמטרה שלה או המשמעות של המחלקה הזאת היא לא כזאת בשביל שירשו אותה.

  4. 00:54

    באחד הפרויקטים הקודמים כתבנו מחלקה שנקראת person ומתארת בן אדם וכמובן שכתבנו אותה בשביל לרשת אותה ולכן לא הגיוני שהיא תהיה סילב, אבל בואו ניקח דוגמא שאנחנו רוצים בהרבה מקומות בתוכנית לבצע שליחה של אימייל, שליחה של אימייל זה פעילות מסוימת ונפרדת שאומרת שאנחנו צריכים לפתוח קו תקשורת, אנחנו צריכים להשתמש בכלים לשליחת אימייל

  5. 01:21

    והקטע הקוד הזה כדאי שנשים אותו באיזושהי ישות ייעודית לשליחת אימייל. אז בעולם האובג'קט אוריינטד הגיוני שנפתח מחלקה שנקראת אימייל סנדר נגדיר במחלקה הזאת את הדאטה ממברס הדרושים יש לנו פה public string from to subject וbody נגדיר איזשהו sito break נגדיר איזשהו sito שמקבל את

  6. 02:01

    כל הערכים נכניס אותם ונבנה לנו איזושהי פונקציה לשליחת האימייל כרגע מה שנעשה זה פשוט נפיץ הודעה על המסך sending subject body ויש לנו פה את סאבג'קט באדי עכשיו בואו נבדוק קודם כל שכל המחלקה עובדת כמו שצריך קונסטרקטור רדק נגדיר אותו בצורה כזאת נשים את זה סייד ביי סייד נבנה אובייקט אימייל סנדר וניתן פה כל מיני

  7. 03:28

    ערכים from מוישה את gmail.com to dana את yahoo.com סאבג'קט היי באדי מסאפ נבצע אימייל נקודה send נראה שכעת יש לנו שליחה של מייל או לפחות הדגמה של שליחה של מייל אבל יכול להיות מצב שאנחנו אומרים לעצמנו אוקיי המחלקה הזאתי נועדה לשליחת מייל ובאמת היא עושה את

  8. 04:11

    העבודה שלה כמו שצריך ואין שום טעם לבצע הרחבה שלה או לרשת אותה למחלקה אחרת שתהיה מסוגלת לשלוח מייל אחר או מייל יותר יפה וכולי היא כבר קיימת ועושה את התפקיד שלה כמו שצריך ואין לנו שום טעם ושום צורך ללכת לרשת אותה למחלקה אחרת במצב כזה אנחנו יכולים להגדיר את המחלקה הזאת

לקורס המלא: קורס תכנות מונחה עצמים OOP

ההרצאה הקודמת: שלבי יצירת אובייקט

ההרצאה הבאה: הסבר על Override בתכנות מונחה עצמים

הרצאות קשורות מקורסים אחרים

  • מחלקה אבסטרקטית ב-NodeJS
  • מחלקה אבסטרקטית ב-TypeScript
  • יצירת מחלקה עם כל ההגדרות - Config Class - חלק 1
  • עבודה עם UITableView - יצירת מחלקה עבור התאים ועיצוב אישי של התא - Custom Cells

קורסים נוספים במסלול

  • קורס יסודות התכנות - שפת C# .NET - קורס תכנות למתחילים - דוט-נט / סי-שארפ - חומר לימוד של מדעי המחשב