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

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

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

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

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

حضرت محمد (ص) : طلب دانش بر هر مسلمانى واجب است. خداوند جويندگان دانش را دوست دارد.

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


به نام پروردگار جهان

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

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

قسمت صد و هجدهم


اضافه كردن متدها و خاصيت هاي جديد

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

امتحان كنيد: به ارث بردن از كلاس Car

براي اين مثال بايد يك فيلد public به كلاس Car اضافه كنيد تا قدرت اتومبيل را بر حسب اسب بخـار در خـود ذخيره كند .

البته اگر مي خواهيد به صورت دقيق و درست كار كنيد، بايد يك خاصيت ايجاد كنيد و به وسيله آن از درسـت بودن مقدار وارد شده توسط كاربر مطمئن شويد .

اما در اينجا سادگي و سرعت براي مـا اهميـت بيـشتري دارد، بنـابراين از فيلد به جاي خاصيت استفاده مي كنيم. فايل حاوي كلاس Car را باز كرده و كد زير را به آن اضافه كنيد :

  • پنجره Solution Explorer برويد و روي نام پروژه كليك راست كنيد. از منوي باز شده گزينـه Add Class را انتخـاب كـرده و بـا اسـتفاده از پنجـره اي كـه نمـايش داده مـي شـود كـلاس جديـدي بـه نـام SportsCar.CS ايجاد كنيد .
  • حال بايد به كلاس SportsCar بگوييم كه از كلاس Car مشتق شود .
  • بـراي ايـن كـار در مقابـل نـام كـلاس SportsCar يك علامت : قرار داده و سپس نام كلاس پايه را ذكر مي كنيد (كه در اينجا برابر با Car اسـت ).
  • تعريف كلاس SportsCar را به صورت زير تغيير دهيد:

  • به اين ترتيب كلاس SportsCar داراي تمام متدها و خاصيت هايي است كه كلاس Car شامل مـي شـود .
  • در اين قسمت بايد يك فيلد public كه مخصوص كلاس SportsCar است را به آن اضافه كنـيم .
  • بـراي ايـن كار كد زير را به اين كلاس اضافه كنيد:

  • براي تست كلاس جدید باید يك زیر برنامه جديد به فايل Program.CS اضافه كنيد.
  • بنابراين كد ز ير را بـه ايـن فايل اضافه كنید.

  • حال زير برنامه Main در فايل Program.CS را تغيير دهيم.
  • توجه كنيد كه در اين مرحله براي اينكه بتوانيم بـه فيلد Weight دسترسي داشته باشيم،
  • بايد يك شيئ از كلاس SportsCar ايجاد كنيم نه يك شيئ از كـلاس Car .
  • تغييرات زير را در متد Main ايجاد كنيد:

برنامه را اجرا كنيد. پنجره اي جدید میبینید.

چگونه كار مي كند؟

براي اينكه مشخص كنيم يك كلاس از كلاس ديگري مشتق شده است، بايد هنگام تعريف كلاس، نام كلاس پايه را در مقابل نـام
كلاس مشتق شده بعد از علامت : قرار دهيم .

به اين صورت كلاس SportsCar شامل تمام خاصيت ها و متدهاي كلاس Car خواهد بـود، امـا بـا وجـود ايـن كـلاس SportsCar نمي تواند به اعضاي private كلاس Car دسترسي داشته باشد .

هنگامي كه يك فيلـد جديـد تعريـف مي كنيد :

اين فيلد فقط در اشياي كه از كلاس SportsCar نمونه سازي شوند وجود خواهند داشت و اشياي كه از كلاس Car نمونه سازي شوند شامل چنين فيلدي نخواهنـد بـود .

بـه ايـن مـورد همـواره توجـه كنيـد – اگـر شـيئ كـه ايجـاد مـي كنيـد از كـلاس SportsCar نباشد و بخواهيد به فيلد Weight در آن شيئ دسترسي پيدا كنيد،

هنگـام كامپايـل برنامـه بـا خطـا مواجـه خواهيد شد .

فيلد Weight تحت هيچ شرايطي نمي تواند در اشيايي كه از كلاس Car نمونه سازي شده اند وجود داشته باشد.

زير برنامه DisplaySportsCarDetails خاصيت Horsepower از كلاس Car و همچنـين خاصـيت Weight از كلاس SportsCar را نمايش مي دهد .

توجه كنيد بـه علـت اينكـه كـلاس SportsCar از كـلاس Car مشتق شده است شامل تمام خاصيت ها و متدهاي موجود در اين كلاس است .

حال در زير برنامه Main ابتدا بايد يك شيئ از كلاس SportsCar ايجاد كنـيم تـا بتـوانيم بـه مقـدار فيلـد Weight دسترسي داشته باشيم.

همانطور كه مشاهده مي كنيد هنگام استفاده از تابع DisplayCarDetails به جاي اينكه يك شيئ از نـوع Car را به آن بفرستيم مي توانيم از يك شيئ SportsCar استفاده كنـيم،

زيـرا كـلاس SportsCar زيـر مجموعـه كـلاس Car است .

به عبارت ديگر هر شيئ از نوع SportsCar در حقيقت يك شيئ از نوع Car است (همـانطور كـه در دنيـاي واقعي نيز هر اتومبيل مسابقه اي، در واقـع يـك اتومبيـل اسـت ).

بعـد از فراخـواني متـد DisplayCarDetails ،متـد DisplaySportsCarDetails را احظار مي كنيم تا خاصيتهاي مربوط به شيئ SportsCar نيـز نمـايش داده شود.

پایان بخش صد و هجدهم

نظرات خود را با ما در میان بگذارید.

به بخش صد و نوزدهم بروید.


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

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

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

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

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

soroush کانال سروش

کانال آی گپ