تبلیغات
مرجع عملی و کاربردی زبان سی شارپ ، تصاویر دیدنی ، دانلود نرم افزار های گوناگون - اصول اولیه OOP و دات نت فریمورک

اصول اولیه OOP و دات نت فریمورک

نویسنده :مرتضی عالمین
تاریخ:یکشنبه 27 اردیبهشت 1388-05:23 ب.ظ

1-مفاهیم بنیادین شیء گرایی

1-1-تعاریف، اشیاء و کلاسها :

چگونه یک کلاس را مهر وموم کنیم؟


کافی است در اعلان کلاس و بعد از Access modifier از کلمه کلیدی sealed استفاده کنیم.

کد:

public sealed class MyClass{}

معنای کلمات کتداولی که میشنوید


معنای کلمات متداولی که معمولا دات نت کار ها خواهند شنید. مخصو.صا تازه کار های عزیز

1 ) CLR
مخفف
: Common Language RunTime

معنا
:
محیط زمان اجرای برنامه های دات نت

-------------------------------------------------------------------------
2) CTS
مخفف
: Common Type System
معنا : تایپ هایی هستند که در همه زبان های
دات نت شناخته شده هستند و معمولا یک نام مستعار در هر زبان مجزا دارند.
مثلا
System.Int32 در زبان C# همان int و در زبان VB همان Integer است.
نکته
:
CTS تایپ ها برای همانهنگ سازی بین زبان های مختلف دات نتی استفاده
میشه
----------------------------------------------------------------------------------------------
3) IL
مخفف
: Intermediate Language
معنا : زبان واسطی که در مرحله اول کامپیا
برنامه ها، تمامی کد های نوشته شده با زبان های دات نت (اعم از سی شارپ، وی بی و ..(به این زبان ترجمه می شوند. (باز هم جهت سازگاری بین زبان های مختلف در دات نت(
مثال

تکه کدی به زبان
C#

کد:

public int add(int num1, int num2)

        {

            return num1 + num2;

        }

همان تکه کد به زبان VB

کد:

Public Function add(ByVal num1 As Integer, ByVal num2 As Integer) As Integer

   

    Return num1 + num2

End Function

تکه کد فوق به زبان IL

کد:

.method public hidebysig instance int32 add(int32 num1, int32 num2) cil managed

{

    .maxstack 2

    .locals init (

        [0] int32 CS$1$0000)

    L_0000: nop

    L_0001: ldarg.1

    L_0002: ldarg.2

    L_0003: add

    L_0004: stloc.0

    L_0005: br.s L_0007

    L_0007: ldloc.0

    L_0008: ret

}

نکته : شما می توانید کل برنامه خود را به زبان IL بنویسید و سپس آن را اجرا کنید. ولی اصولا هیچ آدم عاقلی این کار را نمیکنه
------------------------------------------------------------------------------------------
4 ) CIL
مخفف
: Common Intermediate Langiage
معنا : معالد همون
IL هست.
نکته: استفاده از
IL متداول تر است.
-----------------------------------------------------------------------------------------
5) VES
مخفف
: Virtual Executation Systeme
معنا : معادل
CLR هست
نکته
: CLR متداول تر است.
---------------------------------------------------------------------------------
6) CLI
مخفف:
  Common Language Interface
معنا : به مجموعه
CLR و CTS و CLI می گویند

Abstract Class در مقابل Interface


در حالیکه ممکن است بین یک Abstract Class (کلاس مجرد) و یک اینترفیس تشابهات زیادی وجود بنظر برسد اما تفاوتهای بین آن دو بیشتر است.

تفاوتها و اینکه کجا بهتر است از کدام
استفاده کنیم :

  • کلاس مجرد یکی از انواع کلاس است اما اینترفیس یک کلاس نیست.
  • اینترفیس یک قرارداد را مشخص میکند اما کلاس مجرد ناتمام ماندن تعریف یک کلاس را.
  • یک اینترفیس به هیچ عنوان نمیتواند شامل پیاده سازی درون خود باشد اما یک کلاس مجرد میتواند شامل پیاده سازیهای پیشفرض باشد (اعضایی داشته باشد که بصورت کامل و یا پیشفرض پیاده سازی شده اند)
  • یک کلاس میتواند چندین اینترفیس را پیاده سازی کند اما تنها میتواند از یک کلاس مجرد به ارث رود.
  • بصورت پیشفرض اعضای یک اینترفیس تماما public هستند و نمیتوان برای آنها access modifier انتخاب کرد در حالیکه در یک کلاس مجرد ممکن است.
  • یک کلاس مجرد میتواند شامل فیلد، constructor، destructor و مقادیر ثابت باشد درحالیکه یک اینترفیس نمیتواند.
  • بصورت کلی کار کردن با یک کلاس مجرد سریعتر از یک اینترفیس است.
  • اینترفیسها برای نشان دادن قابلیتهای جانبی یک کلاس بکار میروند (مثلا چون هم انسان و هم اتومبیل حرکت میکنند هر دو میتوانند اینترفیس IMovable رو پیاده سازی کنند) درحالیکه یک کلاس مجرد خواص و رفتارهای اصلی یک کلاس را مشخص میکند.
  • مورد قبلی بصورت خلاصه میشود : یک اینترفیس اغلب برای رابطه هایی مانند can-do و یا able-to استفاده میشود در حالیکه یک کلاس مجرد برای رابطه هایی از نوع : is-a
  • اگر برای مثال یک متود را به یک اینترفیس اضافه کنیم باید تمامی جاهاییکه آن اینترفیس پیاده سازی شده را دنبال و متود مورد نظر را در آنجا پیاده سازی کنیم در حالیکه اگر از یک کلاس مجرد استفاده کنیم میتوانیم در همانجا متود را با پیاده سازی پیشفرض تعریف کنیم تا به مشکل برنخوریم.
  • برای ایجاد خواص و رفتارهای مشابه روی مجموعه های بزرگ و نامرتبط از موجودات بهتر است از اینترفیس کمک بگیریم. یک کلاس مجرد تنها برای دسته بندی موجودات مرتبط بکار میرود.
  • ... ادامه دارد

Method overloading چیست؟


تعریف Method overloading : به امکان تعریف چندین متود با نام یکسان اما متفاوت درامضا( نوع و تعداد پارامترها )در یک کلاس گفته می شود .در واقع امکان داشتن ورژنهای مختلفی از یک متود درون یک کلاس.موارد زیر در Method overloading مطرح می باشند:

  • برای overload کردن یک متود باید متودهایی با signature های متمایز از یکدیگر ایجاد کنیم.signature هر متود شامل نوع , ترتیب و تعداد پارامترها می باشد.
  • return type یا مقدار برگشتی هر متود شامل signature متود نمی شود ,در #c مجاز نیستیم 2متود با signature یکسان امابا مقادیر برگشتی متفاوت داشته باشیم.

مثال :

کد:

  public class MyMathClass

   {

      public int AddNum(int x)

      {

         return x + x;

      }

      public int AddNum(int x, int y)

      {

         return x + y;

      }

      public float AddNum(float x)

      {

         return x + x;

      }

    }

منبع:سری های آموشی TestOut

abstract class یا کلاس مجرد چیست؟


abstract class ,کلاس غیر قطعی و ناتمامی است که در سطح فرزندانش باید پیاده سازی آن تکمیل گردد.
ویژگیهای
abstract class :

  • در اعلان کلاس abstract از کلمه کلیدی abstract قبل از class استفاده می کنیم.
  • اگر کلاسی تنها یک رفتار و یا خاصیت غیر قطعی داشته باشد آن کلاس تبدیل به یک کلاس مجرد و غیر قطعی میگردد.
  • abstract class ها non-instantiatable هستند.در واقع به علت ناتمام بودن پیاده سازیشان نمی توانیم از آنها instanceبسازیم.
  • abstract class ها حداقل یک یا بیشتر متود یا پروپرتی abstract دارند.abstract member ها بدون هیچگونه پیاده سازی فقط declare می شوند.abstract member ها قابل تعریف در کلاسی غیر از کلاس abstract نیستند.
  • کلاسهای فرزند abstract class باید تمامی abstract member ها را پیاده سازی کنند.
  • از کلمه کلیدی sealed در اعلان abstract class نمی توانیم استفاده کنیم .در واقع abstract class باید توسط فرزندانش به ارث رود.
  • متودهای مجرد و غیر قطعی که نیاز به overrid شدن دارند ,نیازی به کلمه کلیدی virtual ندارند .در واقع کلمه کلیدی virtual در کلمه abstract نهفته است.

 




داغ کن - کلوب دات کام
نظرات() 
garciniacambogiapremium.net
سه شنبه 14 فروردین 1397 07:42 ق.ظ
Have been taking little over a month.
garciniacambogiapremium.net
دوشنبه 13 فروردین 1397 05:28 ب.ظ
Have been taking little over a month.
Do compression socks help with Achilles tendonitis?
شنبه 1 مهر 1396 10:29 ق.ظ
Hmm it seems like your blog ate my first comment (it was super long) so I guess I'll just sum it up what I submitted and say, I'm thoroughly enjoying your
blog. I too am an aspiring blog blogger but I'm still new to the whole thing.
Do you have any tips and hints for first-time blog writers?

I'd certainly appreciate it.
How do you prevent Achilles tendonitis?
دوشنبه 27 شهریور 1396 08:17 ب.ظ
Great blog right here! Also your website loads up fast! What web host are you using?
Can I am getting your associate hyperlink to your host?
I desire my website loaded up as quickly as yours
lol
How do you get taller?
دوشنبه 16 مرداد 1396 04:55 ب.ظ
My brother recommended I may like this website.

He was once entirely right. This submit truly made my day.
You can not believe just how much time I had spent for this information! Thanks!
plaza.rakuten.co.jp
جمعه 13 مرداد 1396 01:56 ب.ظ
Wow, amazing blog layout! How long have you been blogging
for? you make blogging look easy. The overall look of your website is great, let
alone the content!
Foot Complaints
شنبه 7 مرداد 1396 10:36 ب.ظ
Hey I know this is off topic but I was wondering if you knew of any widgets I could add to
my blog that automatically tweet my newest twitter updates.
I've been looking for a plug-in like this for quite some time and was hoping maybe you would
have some experience with something like this. Please let me know
if you run into anything. I truly enjoy reading your blog and I look forward to your new updates.
BHW
جمعه 25 فروردین 1396 06:27 ق.ظ
Hi I am so excited I found your website, I really found you by accident, while I
was searching on Askjeeve for something else, Anyhow
I am here now and would just like to say thank you for
a tremendous post and a all round enjoyable blog (I also
love the theme/design), I don't have time to read it all at the moment
but I have saved it and also added in your RSS feeds, so when I have time I will be back to read a great deal more, Please do keep up the awesome work.
مهیار
یکشنبه 27 اردیبهشت 1388 05:32 ب.ظ
سلام
خسته نباشید
مطالب جالبی دارید
تبادل لینک میکنید

فقط با رنک بالای 3 سه تبادل میکنم
مرکز دانلود برنامه وکرک
http://www.tafrihi.ir

اخباربازیگران هالیوود وایران
http://blog.tafrihi.com

-----------------
اینها با رنک 1به بالا یا بازدید 100تا در روز

جدیدترین عکس های خنده دار
http://fun.tafrihi.com

جدیدترین اس ام اس
http://sms.tafrihi.com

حتما اول لینک ما را قرار دهید وبعد ایمیل کنید
خبر بدید
-------------------------
همچنین با وبلاگهایی که تازه شروع به کار کردند یاهر رنک وبازدیدی دارندواگر لینک www.tafrihi.com رو با نام
بهترین سایت تفریحی برای جوانان ایرانی
بگذارند دراین قسمت
http://www.tafrihi.com/list/
که به معرفی سایت ها ووبلاگها میپردازیم وبازدید خوبی هم از گوگل دارند ورنک2 دارد شمارا دراینجا معرفی میکنیم

اگر میخواهید لینکتان در قسمت معرفی سایتها قرار بگیرید حتما لینک مارا به همین عنوان قرارداده ودر ایمیل اعلام کنید که برای قسمت معرفی در لینک معرفی سایت ها
-------------------------------
همچنین

عکس هایی زیبا و جدید از لیلا اوتادی تک تک
عکس هایی از مدلهای جدید مانتو ایرانی
عکسهایی زیبا از مدل های جدید روسری
مسابقه دانشجویی دختر شایسته روسیه2009 جدید
عکس هایی جدید از گلشیفته فراهانی در جشنواره فیلم برلین
عکس هایی زیبا وقشنگ از هدیه تهرانی
عکس هایی ازدختران شایسته جهان
عکسهایی جالب وزیبا از المپیک حیوانات
عکس هایی از نمایش مد لباس مالزی
عکس هایی ستارگان هالیوود در جشن مد نیویورک
جدیدترین عكس های اضافه شده از نانسی خواننده عرب دراینجا
عكس عروسی لیلا فروهر

همه همه را میتوانید به صورت مستقیم از اینجا ببینید
http://tafrihi.com/toplink/axs.htm
-------------------------

www.tafrihi.com
بای
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر




Admin Logo
themebox Logo