وبلاگ سید جلال سیدیزدی

تمرین هجدهم

چهارشنبه, ۱۷ ارديبهشت ۱۳۹۳، ۰۷:۲۳ ق.ظ

سلام دوستان

در تمرین هجدهم شما باید در کلاس Post و زیرکلاس های آن در پروژه ی فصل ۹ متد toString را به گونه ای پیاده سازی کنید که ترتیب اجزاء هر پست در زمان نمایش همانند نمونه ارائه شده در انتهای صفحه ۳۰۲ و ابتدای صفحه ۳۰۳ کتاب باشد.


دقت کنید خالی رها کردن متد toString در کلاس Post مجاز نیست.


مهلت ارسال: جمعه ۱۹ اردیبهشت ساعت ۲۰

با تاخیر: شنبه ۲۰ اردیبهشت ساعت ۲۰ یکشنبه 21 اردیبهشت ساعت 20

موفق باشید.

  • ۹۳/۰۲/۱۷

نظرات  (۶)

ببینید استاد من یک چیزی رو درک نمی کنم , فرض کنید من از photopost و messagepost وpost, newsfeed یک شی ساختم متد show که در ساب کلاس هام تعریف کردم دقیقا به همون شکل که می خواهیم اطلاعات رو چاپ می کنه حال اگر من ای رو اد کنم در نیوز فید یک مشکلی داره و اون اینه که همواره تعداد لایک ها و کامنت ها رو صفر نشون می ده ! این در حالی است که در post من یک کامنت و یک لایک add کردم . و از متد tostring  سوپر کلاس در ساب کلاسم هم استفاده کردم . در واقع من نمی تونم درک کنم که چه طور تغییرات اعمال شوده در سوپر کلاس مثل کامن گذاشتن و یا لایک کردن را در ساب کلاس ها هم اعمال کنم تا با add کردن یک مثلا messagepost  لایک ها و کامنت ها هم چاپ شود؟
پاسخ:
سلام
اگر درست متوجه شده باشم فکر می کنم شما موضوع رو درست متوجه نشده اید!
دقت کنید که شما در حالت معمول اصلاً از Post نباید شی بسازید. فقط از ساب کلاس ها شی بسازید و لایک کنید و کامنت بگذارید. بعد به NewsFeed اضافه کنید و show را فراخوانی کنید.

فقط یک نکته می مونه و اون اینه که اگر بخواهید ببینید متد toString کلاس Post رو درست نوشتید یا نه یه راه اینه که جداگانه از Post شی بسازید و به NewsFeed اضافه کنید.
در واقع کلاس Post یه جورایی انتزاعی است (هر چند به طور رسمس انتزاعی تعریف نشده بود) و همان طور که امروز دیدید در حالت کلی ازش شی نمی سازیم.
موفق باشید.
سلام استاد . خسته نباشید
هر بار که یک شی از post  ساختیم و در newsfeed  اد کردیم و بعد متد show  رو فراخانی کردیم باید اطلاعات به شکل خواسته شده نوشته شود ؟ اخه من یک مشکلی دارم متد های to string ای که برای ساب کلاس ها نوشتم دقیقا اطلاعات رو همون جوری که می خواهیم چاپ می کنند ولی در سوپر کلاس این طوری نیست و فقط مشترک ها چاپ می شه و  مشکل اینجاست که نمی شه در سوپر کلاس به فیلد ها و متدهای ساب کلاس دسترسی داشت. حالا ایا منظور اینه که متدی برای نمایش اطلاعات به شکل خواسته شده در ساب کلاس ها داشته باشیم یا سوپر کلاس؟یا هر دو؟
پاسخ:
سلام ممنون
شما باید toString رو در دو کلاس پیاده سازی کنید.
بعد تعدادی شی ای از subclass ها ایجاد کرده و در کلاکشن قرار دهید. حال در متد show شما هستید و toString ساب کلاس. باید به طریقی این متد رو بنویسید که آنچه این toString بر میگرداند همان باشد که گفته شده.
در ضمن همانطور که می دانید در toString ساب کلاس برای دسترسی به اطلاعات مشترک باید از متد toString سوپر کلاس استفاده شود.
موفق باشید.
سلام استاد
خسته نباشید. خدا قوت

خواستم خواهش کنم که وقت تمرین رو تمدید کنید چون نت خوابگاه تا الان قطع بود.
متاسفانه از 4شنبه بعدازظهر قطع بودو باز هم امکان قطعی به علت قطع برق پردیس هستش و چون از موتور برق استفاده میکنند در حال حاظر ما مشکل اینترنت داریم و تا الان نمیتونستیم وبلاگ رو چک کنیم.  اگر امکان ئاره تمرینات رو وقتش رو بیشتر کنید.

با تشکر. التماس دعا. 
پاسخ:
سلام ممنون
هیچ راه دیگری نبود که از تمرین ها مطلع شوید؟
موبایل، تلفن، پیامک ...؟
باشه تا فردا شب تمدید شد. البته با تاخیر.
موفق باشید.


درود استاد
1)اشکال داره اگه 2 تا متد toString در کلاس Post نوشته و بعد در PhotoPost و MessagePost فراخوانی کنیم؟
2)منظورتون اینه که کاری کنیم که مثلا اول یه مشترک چاپ شه بعد غیر مشترک و بعد دوباره یه مشترک؟ آخه در صفحات 302 و 303 کتاب من چیزی ندیدم!
سپاسگزارم.
پاسخ:
سلام

1) بله. همانطور که سر کلاس بیان شد برای رونویسی (overriding) باید signature متدهای رونویسی شده و رونویسی کننده یکسان باشند. با این ترتیب فقط یک متد toString می شه نوشت.
2) بله. دقت کنید می بینید!


Leonardo da Vinci
Had a great idea this morning.
But now I forgot what it was. Something to do with flying ...
40 seconds ago. 2 people like this.
No comments.

موفق باشید

سلام استاد
اشکال نداره دو تا متد داخل پست بنویسیم؟ یکی display1  و دیگری display2 و این ها رو داخل مسیج پست و فتو پست صدا بزنیم
پاسخ:
سلام
دقت کنید گفته شده با toString این کار رو انجام بدهید.
قبل از هر کاری display رو از هر دو کلاس حذف کنید. بعد toString رو بنویسید به طوری که خروجی مانند زمانی باشد که display داشتم. سپس تغییرات لازم را طوری اعمال کنید که به هدف خواسته شده برسید.
موفق باشید.
استاد پروژه network v3 رو باید تغییر . تو کلاس ها ای این کلاس در حال حاضر متد tostring نیست باید ما خودمون براس بنویسیم؟
پاسخ:
سلام
بله
موفق باشید.
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی