تبلیغات
banner
banner
banner
تبلیغات
banner

فیلم های آموزشی : 36 +

تعداد کاربران : 34 +

تعداد کل مطالب : 338 +

تعداد نظرات : 29 +

حضرت علی (ع) : دانش اندک همراه با عمل بهتر از علم بسیار بدون عمل است.

آموزش مقدماتی تا پیشرفته سی شارپ بخش صد و نهم


به نام خدایی که در این نزدیکی است.

آموزش مقدماتی تا پیشرفته سی شارپ بخش صد و نهم

سلام به همه کاربران وبسایت لندلرن

قسمت صد و نهم


طراحي يك شيئ

بر خلاف مطالبي كه از ابتداي دوره تاكنون بررسي كرده ايم، به عنوان اولين پروژه اين فصل نمي خواهيم يك الگوريتم تعريف كرده و سپس اشياي مورد نياز آن را ايجاد كنيم .

بلكه سعي مي كنيم با ارائه يك مثال، كاربرد مطالبي كه در قـسمتهاي قبـل بـه صـورت تئوري با آنها آشنا شديد را در عمل مشاهده كنيد .

مثالي كه در اين قسمت بررسي خواهيم كرد، طراحي يـك كـلاس بـراي اتومبيـل است .

در مورد چنين كلاسي، اصول مشخصي هستند كه در ابتدا بايد آنها را بدانيد.

  • ظاهر آن چگونه است : ظاهر يك اتومبيل شامل مواردي مانند مدل، رنگ، تعداد درها و مواردي مشابه است . اين گونه ويژگيهاي يك اتومبيل هنگام ايجاد شدن آن تنظيم مي شود و معمولاً تا انتهاي عمر شيئ نيز ثابت است.
  • توانايي هاي آن چيست: قدرت و اندازه موتور، تركيب و تعداد سيلندرها و غيره.
  • وضعيت كنوني آن چيست : اتومبيل ثابت است، به جلو حركت مي كند و يا به عقب حركت مي كنـد، سـرعت و جهت آن چقدر است؟
  • موقعيت مكاني آن چيست : شيئ اتومبيل معمولا داراي شيئ ديگري از نوع GPS است كـه موقعيـت مكـاني آن را نسبت به ديگر اشيا (مثلاً اتومبيل هاي ديگر) نمايش مي دهد.

علاوه بر اين مي خواهيد اشيايي كه از اين كلاس نمونه سازي مي شوند، قابل كنترل نيز باشند. براي مثال :

  • بتوانيد سرعت آن را كاهش دهيد.
  • بتوانيد سرعت آن را افزايش دهيد.
  • بتوانيد جهت حركت آن را به سمت چپ تغيير دهيد.
  • بتوانيد جهت حركت آن را به سمت راست تغيير دهيد.
  • بتوانيد آن را متوقف كنيد.

همانطور كه در ابتداي دوره گفتم، ابتدا بايد سه مورد را در رابطه با اين كلاس مشخص كنيد :

  • هويت
  • حالت
  • رفتار.

فرض مي كنـيم كه جنبه هويت در نظر گرفته شده است و اشياي اين كلاس مي دانند كه از نوع اتومبيل هستند .

بنابراين به بررسـي دو جنبـه ديگـر، يعني حالت و رفتار مي پردازيم.

حالت :

حالت، وضعيت كنوني يك شيئ از كلاس را توصيف مي كند .

براي مثال، موقعيت و سرعت اتومبيل بخشي از حالت آن به شمار مـي روند.

هنگام طراحي يك كلاس، ابتدا بايد مشخص كنيد كه براي دانستن حالت يك شيئ چه مواردي را بايد در نظر بگيريـد .

هنگـام طراحي كلاس اتومبيل سرعت آن در تعيين حالت آن اهميت زيادي دارد، اما براي طراحي كلاس Customer ،سرعت مفهومي ندارد بلكه آدرس كاربر يكي از مهمترين عوامل در حالت كنوني آن محسوب مي شود .

حالت يك شيئ، معمولا به صورت مقاديري درون آن نگهداري مي شوند .

بعضي از اين مقادير به صورت عمـومي (Public)در اختيار كاربران قرار داده مي شوند و كاربران مي توانند به وسيله خصوصيات كلاس آنها را تغيير دهند.

بعـضي ديگـر نيـز بـه صـورت خصوصي (Private)هستند و فقط به وسيله اشياي آن كلاس مي توانند اسـتفاده شـوند .

همچنـين بعـضي از حالتهـاي يـك كلاس نيز، فقط قابل خواندن هستند و كاربر نمي تواند به صورت مستقيم آنها را تغيير دهد .

بـراي مثـال اتومبيـل خاصـيتي بـه نـام سرعت سنج دارد كه سرعت شيئ را در هر لحظه مشخص مي كند .

كاربر اتومبيل فقط مي تواند اين سرعت را بخواند، اما نمي توانـد آن را به طور مستقيم تغيير دهد – براي تغيير آن بايد به وسيله متدهايي مانند Accelerate و يا Break باعث افزايش و يا كاهش سرعت شود.

رفتار :

به عكس العمل يك شيئ از كلاس در مقابل درخواستهاي كاربر، رفتار آن شيئ مي گويند .

زماني كه متدي را از يك شيئ فراخـواني مي كنيد، در حقيقت از شيئ مي خواهيد كه وظيفه اي را براي شما انجام دهد و آن شيئ نيز در مقابل اين درخواست عكس العملي را نشان مي دهد .

بنابراين رفتار يك شيئ معمولاً به متدها مربوط است .

البته رفتار مي تواند به خاصيتهاي يك شيئ نيز مربوط باشد .

در مثال تلويزيون كه در قسمت قبلي مشاهده كرديد، اگر خاصيت كانال آن را برابر با عدد خاصي قرار دهيد، باعـث مـي شـويد كـه آن شيئ با تغيير تصوير صفحه نمايش، رفتار خود را نمايش دهد .

رفتار يك شيئ از كلاس معمولا به صورت چندين خط كد است كه وظيفه خاصي را انجام مي دهد .

اين كدها معمولا يك و يـا هـر دوي موارد زير را دربر مي گيرند.

  • تغيير حالت خود شيئ : هنگامي كه متد Accelerate را براي شيئ از كلاس اتومبيـل فراخـواني مـي كنيـد،
    باعث مي شويد كه آن شيئ سريعتر حركت كند. بنابراين حالت آن را تغيير م
  • اثر گذاشتن روي دنياي خارج از شيئ : اين مورد مي تواند شامل تغيير دادن اشياي ديگر در برنامه، نمايش مطلبي روي صفحه نمايش، ذخيره اطلاعات روي ديسك، يا چاپ يك سند از برنامه باشد.

پایان بخش تئوری

به قسمت صد و دهم بروید.


درباره نویسنده
سجاد اسدی
   سجاد اسدی

سجاد اسدی هستم دانشجوی رشته نرم افزار و علاقه مند به تدریس و یادگیری دروس مرتبط با تکنولوژی نرم افزار و اینترنت اشیاء جهت ارتباط با بنده مراجعه شود به آیدی سروش و تلگرام : @ordervira و پیج بنده در اینستاگرام instagram.com/sajjadred11 ""اللهم صل علی محمد و آل محمد"" برای شروع هیچ وقت دیر نیست. "الهم عجل لولیک الفرج"

دیدگاه بگذارید

avatar
  اشتراک  
اطلاع رسانی

aparat کانال آپارات

soroush کانال سروش

کانال آی گپ