لرنینگ تی وی

طعم شیرین یادگیری

آموزش تصویری کلاس های انتزاعی در سی شارپ (Abstract class)


تاریخ انتشار

تعداد نظرات

تعداد بازدید

زمان تقریبی مطالعه
۱۸/مهر/۱۳۹۲
۱۸۹۷ روز پیش
۶ دیدگاه ۳۶۹۶ ۱ دقیقه

دانلود آموزش تصویری کلاس های انتزاعی در سی شارپ

 آموزش تصویری کلاس های انتزاعی در سی شارپ (Abstract class)

با سلام به کاربران عزیز learningtv.ir.امروز آموزش کلاس های انتزاعی در سی شارپ یا Abstract class رو در خدمت شما هستیم.بعضی متصورند برای بازار کار باید کار با فرم، تکست و … بلد باشن که این طرز  تفکر اشتباه هست.اتفاقا باید مفاهیم اصلی و کلیدی سی شارپ رو بلد باشن.چون همون ویندوز فرم ها هم از این مفاهیم کلیدی تشکیل شده اند.یکی از این مفاهیم هم کلاس های انتزاعی می باشند.

-آموزش تصویری کلاس ها و متد ها را از  این لینک  دانلود کنید.

-آموزش تصویری پارامتر های متدها را از این لینک دانلود کنید

–  آموزش تصویری ارث بری (inheritance ) را از  این  لینک  دانلود کنید

– آموزش تصویری رابط ها (interface ) را از  این لینک  دانلود کنید.

اما در این ویدئو ابتدا می بینیم که کلاس انتزاعی چیست؟چطور کد نویسی میشه؟ و چرا باید از آن استفاده کرد؟هر گاه لازم باشد که ما یک کلاس پایه ای داشته باشیم اما به طور خیلی کلی آنگاه نیاز داریم که آن کلاس را به صورت انتزاعی (Abstract) تعریف کنیم.برای تعریف یک کلاس به صورت انتزاعی کافیست از کلمه کلیدی abstract استفاده کنیم.به عبارت بهتر ” هدف ایجاد کلاس های انتزاعی ، ایجاد یک supper class (کلاس پایه)هست که یک طرح کلی را به اشتراک بگذارد.اما این supper Class باید خیلی کلی باشد” .بنابراین به خاطر کلی بودن این کلاس های انتزاعی ، هیچ گاه نمی توان از این کلاس ها شی ای ساخت………..

دانلود آموزش تصویری کلاس های انتزاعی در سی شارپ (Abstract class) در ادامه مطالب

مدت آموزش:۳۰ دقیقه  و  با کیفیت عالی

 به زبان شیرین فارسی

برای روشن تر شدن موضوع مثالی را مطرح می کنیم.کلاس Automobile را در نظر بگیرید.این کلاس دارای یک سری ویژگی ها ی کلی هست.مثلا فیلد نوع سوخت، تعداد چرخ، تعداد درب، حداکثر شتاب، حداکثر سرعت، جنس بدنه و… و یک سری متد دارد مثل موتوراتومبیل ، ترمز گرفتن، شتاب گرفتن و…  اما نکته ی مهم این هست که به خاطر کلی بودن این کلاس این متد ها بدون پیاده سازی هستند.حالا اگر کسی بگوید با این کلاس یک شی اتومبیل بساز قطعا قادر به این کار نخواهیم بود.اما اگر کلاس پژو را از این کلاس مشتق کنیم(ارث بری).آنگاه لازم هست که ویژگی ها کلاس انتزاعی پدر را در کلاس فرزند حتما پیاده سازی کنیم.مثلا نحوه طراحی موتور پژو، نحوه ترمز گرفتن پژو، و نحوه شتاب گرفتن پژوه  را پیاده سازی کنیم.حالا اگر کسی به ما بگوید از این کلاس پژو یک شی بساز قادرخواهیم بود مثلا یک پژو۲۰۶ ایجاد کنیم.حالا می توانیم کلاس پراید،پیکان :-)   و… رو از این کلاس ارث بری کنیم و هر متد را مطابق میل پیاده سازی کنیم و در نهایت از این subclass ها می توانیم اشیاء بسازیم.

Abstraction Class(کلاس های انتزاعی)

* نکته ۱: از کلاس های انتزاعی (Abstract ) نمی توان شی ساخت.

* نکته ۲:اگر یک کلاس یک یا چند عضو انتزاعی داشته باشد آن کلاس نیز انتزاعی خواهد بود.

* نکته ۳ : یک کلاس انتزاعی می تواند علاوه بر اعضای انتزاعی شامل اعضای غیر انتزاعی باشد.همانطور که در متد Move کد زیر مشاهده می کنید غیر انتزاعی و به صورت virtual هست ولی کلاس انتزاعی و به صورت abstract تعریف شده است.

* نکته ۴: اگر یک کلاس به صورت انتزاعی تعریف شود بدیهی است که نمی توان از کلمه کلیدی sealed استفاده کرد.زیرا از یک طرف به صورت انتزاعی تعریف شده است تا در کلاس های فرزند بتوان توسعه داد و از طرف دیگر sealed گفتیم که یعنی از این کلاس ارث بری نکن و این یعنی تناقض!!!!!!! پس خطای کامپایلری خواهیم داشت.

* نکته  ۵: یک کلاس انتزاعی می تواند از یک کلاس انتزاعی دیگر ارث بری کند  و لازم نیست که متد های کلاس های انتزاعی پدر را پیاده سازی کند.اما اگر یک کلاس غیرا نتزاعی از یک کلاس انتزاعی ارث بری کند باید و حتما متد های انتزاعی را در کلاس فرزند پیاده سازی کند.

* نکته ۶: یک کلاس abstract می‌تواند شامل فیلد‌ها و ثابت‌های مختلفی باشد.

و….

Abstraction Method(متدهای انتزاعی)

* نکته ۷:اگر متدی را به صورت Abstract تعریف کنیم آنگاه  مفهوم virtual نیز در داخل مفهوم abstract مستتر خواهد بود پس نیازی نیست که اگر متدی انتزاعی باشد به صورت virtual تعریف شود و اگر اینکار را انجام دهیم دچار یک خطا خواهیم شد.

 

* نکته ۸:  اگر متدی یا هر عضوی (مثلا یک property)به صورت انتزاعی تعریف شود در subclass  ها حتما باید پیاده سازی شود و در غیر این صورت دچار یک خطا خواهیم شد.

 

* نکته ۹ : اگر متدی به صورت Abstract  باشد نباید هیچ گونه پیاده سازی داشته باشد.بخاطر اینکه  گفتیم متد ها و کلاس های انتزاعی یک مفهوم کلی هستند.

 

* نکته ۱۰: در صورتی که کلاس انتزاعی دارای یک متد استاتیک باشد آنگاه نمی توان این عضو را به صورت انتزاعی تعریف کرد.به عبارتی اگر یک عضو استاتیک را به صورت انتزاعی تعریف کنیم دچار یک خطای کامپایلری خواهیم شد.(دقت شود در صورتی که یک متد غیر استاتیک را به صورت انتزاعی تعریف کنید و برای آن بدنه پیاده سازی کنید با خطای کامپایلر مواجه میشید.!!)

 

* نکته ۱۱: اگر یک متد به صورت انتزاعی تعریف شود در subclass ها باید این متد پیاده سازی شود.پیاده سازی هم ساده است مانند جلسه قبل که متدهای virtual را با کلمه کلیدی override پیاده سازی می کردیم اینجا هم ، دقیقا همین طور هست یعنی با استفاده از کلمه کلیدی override متد انتزاعی را در کلاس های فرزند (البته دقت کنید که کلاس های فرزندی که غیر انتزاعی باشند) پیاده سازی میکنیم.

 

*  نکته ۱۲: اگر یک متد را به صورت انتزاعی (Abstract ) تعریف کنید ولی کلاس به صورت غیر انتزاعی تعریف شده باشد دچار یک خطای کامپایلری خواهید شد.

 

سوالی شاید براتون پیش بیاد آیا میشه Property ها رو هم به صورت انتزاعی تعریف کرد و اگر بله پس چطور براش پیاده سازی انجام ندیم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟خب به صورت زیر باید عمل کنیم:

و….

بررسی  ومقایسه ی  Virtual و abstract

– یک کلاس را می توان به صورت انتزاعی تعریف کرد اما نمی توان virtual تعریف کرد.

– یک متد که به صورت انتزاعی هست نمی تواند پیاده سازی داشته باشد اما اگر به صورت virtual باشد می تواند پیاده سازی داشته باشد.

**** پیشاپیش از توجه، نظرات و انتقادات و پیشنهاد های شما سپاسگزاریم. ***

۶ نظر برای "آموزش تصویری کلاس های انتزاعی در سی شارپ (Abstract class)"


  1. نوشته شده توسط  

    سلام -بسیار سپاسگذارم از آموزش های زیبا شما در مبحث OOP

    فقط یک پیشنهاد داشتم که در انتها مباحث OOP اگه لحاظ بشه

    فکر می کنم فوق العاده بشه :بعد از اتمام مفاهیم OOP یک

    پروژه کاربردی در باب ساخت یک DLL یا یوزر کنترل کاملا شخصی

    (مثلا TBOX یا هر چیزی که خودتون صلاح میدونید ) رو اکشن

    کنید تا مفاهیمی مانند ; override کردن رویدادها و خصوصیات

    -ارث بری از object های اصلی و در یک کلام کلیه مفاهیم کلاس

    (Abstraction,virtual,sealed و… )و شی گرایی در غالب کاملا عملی و کاربردی برای همه کاملا جا

    بیفته .

    ویندوز اپلیکیشن از این حیث(oop) خیلی زیباتر میشه و دید

    قشنگ تری به آدم میده .

    تشکر

    پاسخ

    پاسخ
    • نوشته شده توسط  

      تشکر از پیشنهاد کاربر عزیز(آقا حامد)
      به نظر ایده ی خوبی میاد.حتما سعی می کنیم که چنین آموزشی بسازیم.

      پاسخ

      پاسخ
      • نوشته شده توسط  

        Woah nelly, how about them appsel!

        پاسخ

  2. نوشته شده توسط  

    سلام دوست عزیز از شما به خاطر این فیلمای آموزشیتون تشکر میکنم مطالب کامل توضیح داده شده اند.خدا خیرت بده

    پاسخ

    پاسخ
    • نوشته شده توسط  

      خواهش می کنم.وظیفه است.

      پاسخ

      پاسخ
  3. نوشته شده توسط  

    سلام.خدا قوت،میخواستم بابت این فیلکهای اموزشی تشکر کنم.

    پاسخ

    پاسخ

ارسال دیدگاه

نام (*)
پست الکترونیکی (*)
وبسایت