campaign-experts

دوره مجازی #C (جلسه 7): آشنایی با برنامه نویسی شی گرا



visibility  
mode_comment   ۳۵

در این جلسه برنامه نویسی شی گرا و مفهوم و کاربرد آن را معرفی خواهیم کرد. پیش از آن با NetFramework. و بخش های مهم و کاربردی آن و همینطور با نحوه ی ترجمه ی کد های برنامه نویسی به برنامه های قابل اجرا توسط کامپایلر زبان #C آشنا می شویم. پس از آشنایی با مفهوم برنامه نویسی شی گرا برای درک کاربرد و اهمیت آن یک برنامه را ابتدا با دانش گذشته خود نوشته و سپس آن را با استفاده از مفاهیم شی گرایی طراحی و تولید می کنیم. این برنامه بازی دوز می باشد که در محیط کنسول اجرا می شود. نحوه ی برنامه نویسی شی گرا را نیز در حین نوشتن این برنامه فرا خواهیم گرفت. البته هدف از مطالب ارائه شده در این جلسه صرفا آشنایی با اهمیت و کاربرد برنامه نویسی شی گرا می باشد و مطالب و جزئیات در جلسات آینده به تفصیل مورد بررسی قرار خواهد گرفت.

مطالب آموزش داده شده در این جلسه به قرار زیر می باشند:

  • آشنایی با NetFramework. و قسمت های مهم آن
  • آشنایی با نحوه ی کامپایل و تولید برنامه های قابل اجرا از کد های نوشته شده
  • معرفی برنامه نویسی شی گرا
  • آشنایی با مفهوم کلاس و شی
  • معرفی المان های موجود در برنامه نویسی شی گرا
  • ذکر یک مثال کامل برای فهم برنامه نویسی شی گرا
  • آشنایی با field و property
  • معرفی constructor و method ها در برنامه نویسی شی گرا
  • انجام یک پروژه به دو صورت شی گرا و غیر شی گرا

در جلسه ی آینده علاوه بر تمرین پیرامون مطالب ارائه شده در این جلسه، با مفهوم ارث بری در برنامه نویسی شی گرا آشنا می شویم.

info توجه

این مطلب یک جلسه از دوره آموزش #C می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در دوره آموزش #C

comment دیدگاه کاربران
پژمان replyپاسخ

در ضمن در ادامه مطلب قبلی باید عرض کنم درون خود متد IsPlayerWonTheGame اگر دقت بفرمایید در صورتیکه مثلا شرط اول برقرار باشد باز بی جهت خطوط بعدی هم تست میگردند در صورتیکه برقراری یک شرط برای ما کافیست!! . به نظر من از شرط دوم باید یک else به همه آنها اضافه گردد.
دیگر اینکه آقای زارعی اگر مثلا یکی از شروط برقرار باشد وقتی به انتهای متد میرسیم فرمان return false قرار دارد. حال این شک بوجود میآید که از آنجا که تا متد بصورت کامل پایان نیافته Stack frame ایندکس را به آدرس بلوک فراخواننده متد جاری و از سطر مربوطه برنمیگرداند به نظر شما اآیا متد تحت هر شرایطی false برنمیگرداند!!؟ چون به نظر من اینجا هم قبل از فرمان return false; نیاز به یک else داریم.

آرین زارعی

این کد رو که میفرمایید اگر میتونید تست کنید برای مثال های مختلف، و اگر درست بود نظرتون، که انجام بهینه سازی ای که میفرمایید خوب هست. صرفا هدف از ارائه ی این مثال آشنایی با یک سری مفاهیم بود.

پژمان

چشم. ممنون از پاسخگویی به موقع شما

پژمان replyپاسخ

ببخشید سه پسته شد.

در متد GameplaneHasEmptySpace نیز تقریبا شرایط مشابه برای فرمان return false که در بالا ذکر شد وجود دارد. ضمن اینکه در حلقه و هنگام پیمایش آرایه اگر شرط برای یکی از خانه ها مثلا خانه اول برقرار باشد باز بیجهت کل حلقه تا به انتها طی میشود!! . بنابراین به نظرم نیاز به فرمان break بعد از فرمان return true میباشد. ولی باز مشکلی که هست اینجاست که به محض break ایندکس آدرس کدها دقیقا جلوی فرمان return false یعنی اولین فرمان بعد از پایان حلقه for ، قرار میگیرد. به نظر من در این حالت باز متد تحت هر شرایطی false را برمیگرداند. مگر جای فرمان return false تغییر یابد. میبخشید طولانی شد. ممنون میشم راهنمایی بفرمایید البته آنچه که معلوم است علی الظاهر برنامه درست کار میکنه!!!

Nima Arian replyپاسخ

امروز جلسه 7 رو دیدم هیچی از شی گرایی متوجه نشدم 😥 یعنی اصلا ذهنیت من تغییر کرد من اینجوری فهمیده بودم که توی شی گرایی ما از کل به جز می رسیم اول نگاه می کنیم برنامه ما چه چیز هایی نیاز داره و برنامه اصلی رو مینویسیم و بعد به ترتیب اون چیزهایی که داخل برنامه اصلی نیاز به پیاده سازی داره رو پیاده سازی می کنیم 🙄 اما آقای زارعی شما یهو منو غافل گیر کردین و از جز بازم رسیدین به کل یا یه جورایی از وسط رسیدین به جز و کل یعنی اومدین اول بورد رو طراحی کردین بعد سل و بعد برنامه اصلی هیچی دیگه حالا من با این ذهن آشفته الان چه کنم؟ 🙄 😕

آرین زارعی

ببینید دوست عزیز. بحثی که شما میفرمایید یعنی رسیدن از جزء به کل و یا بلعکس ارتباطی به مفاهیم شی گرایی نداره. این مباحث مباحث مهندسی نرم افزار و تحلیل برنامه ها هست. ما به مباحث مهندسی نرم افزار به اندازه ی نیاز میپردازیم در ادامه ی دوره ولی در کل مباحثی پیشرفته و تکمیلی هستند این مباحث. درباره ی رسیدن از جزء به کل یا بلعکس در مفاهیم موجود در تحلیل و طراحی سیستم های اطلاعاتی، هر دوی این رهیافت ها وجود دارند و جزئیات خاص خودشون رو دارن. سعی کنید این مباحث رو با هم قاطی نکنید. شی گرایی میپردازه به ایجاد این نقطه نظر که تمام موجودیت های موجود رو به شکل اشیا ببینیم که صفت و عملکرد دارند و … . برید جلو تر و چند مثال رو ببینید مطمئنا حل میشه مشکلتون

ارسال نظرات

کاربر گرامی، امکان ارسال نظر و پشتیبانی برای دوره های مجازی فقط برای دانشجویان این دوره امکان پذیر می باشد.

1 2