![ישן](https://static.fresh.co.il/images/vBulletin/statusicon/post_old.gif)
10-02-2007, 03:58
|
|
|
חבר מתאריך: 31.03.02
הודעות: 400
|
|
כמו שאמרו לך, בדוגמא שלך אתה לא יורש בלוקים אלא יוצר עצמים (או אובייקטים) של הבלוקים.
כדי להסביר קצת, תחשוב על זה ככה:
כאשר אתה יוצר סוג יותר ספציפי של משהו יותר כללי, אתה משתמש בהורשה, אבל כאשר אתה
צריך פשוט "הרבה" של משהו אתה יוצר עצמים (instances).
אם להמשיך בדוגמא שלך, אפשר להדגים הורשה. לדוגמא יש לך בלוקים, אבל יש לך כמה בלוקים
שמחזיקים תמונה שמועלית מקובץ, בלוק אשר מחזיק מידע מסוג אחר, ואולי בלוק שסתם מחזיק צבע.
אם יש מספיק הבדלים בין הבלוקים ובין איך שהם עובדים, למרות שאתה רוצה להביא ממשק פחות
או יותר זהה לכל סוגי הבלוקים, תוכל ליצור מחלקה כללית בשם "בלוק" אשר כוללת דברים ממש
בסיסיים משותפים לכל הבלוקים (לדוגמא, לכל בלוק, לא משנה מה סוגו, יש מימדים ומיקום). אח"כ
תוכל להשתמש בהורשה ולרשת 3 מחלקות שונות מהמחלקה הכללית בשם "בלוק", ולקרוא להן
בשמות כגון "בלוק_תמונה", "בלוק_צבע", וכו'. אם תלמד את הנושא לעומק תיראה שיש עוד הרבה
דברים נוחים בתיכנות מונחה עצמים שכזה. לדוגמא, לא משנה מה סוג הבלוק המסויים שאליו אתה
רוצה להתחייס, תוכל להשתמש במשתנה מסוג "בלוק" כללי אשר יוכל להצביע לכל בלוק ספציפי,
בלי שתצתרך לדעת מה בדיוק סוג הבלוק, דבר שלא תמיד קל לדעת.
לעומת זאת, כאשר תסיים לעצב את המחלקות, תוכל ליצור רשימה או מערך או מה שלא תרצה
של בלוקים אשר מייצגים את כל לוח המשחק, וזאת תכלול "עצמים" או "מופעים" רבים של בלוקים.
כל בלוק שכזה ברשימה יהיה אחד משלושת הבלוקים השונים אשר כולם יורשים מהמחלקה
"בלוק". וכאן שוב, כמו שאמרתי מקודם, הרשימה תוכל להיות פשוט מסוג "בלוק", כיוון שמשתנה
מסוג "בלוק" יכול להצביע לכל בלוק, אבל שוב את זה תלמד יותר מאוחר.
מקווה שההסבר היותר ארוך הזה מסביר קצת את העניין.
בהצלחה.
נערך לאחרונה ע"י LinkBomber בתאריך 10-02-2007 בשעה 04:01.
|