معمولا برنامه نویسان با زبان های متفاوتی برنامه نویسی می نمایند ، زبان هایی مانند سی شارپ ، php ، جاوا و غیره از این دست می باشند.
زبان های برنامه نویسی را می توان از نظر ساختار به دو دسته شی گرا و ساده (غیر شی گرا) تقسیم کرد.

در آموزش قبلی (چطوری میشه از توی یک کلاس به کنترل های داخل یک صفحه دسترسی داشت ؟!) درباره یکی از زیبایی های شگرف شی گرایی صحبت کردیم ، در این مقاله می خواهیم بصورت کامل در مورد شی گرایی صحبت کنیم.

زبان شی گرا چیست؟
هر یک از ما لغت شی گرا را به کررات شنبده ایم ، اما معنی آن را می دانید ؟
در زبان های شی گرا به همه چیز به دید شیء می نگریم!
بگذارید مثالی بزنیمریال فرض کنید دوستی دارید که در شهر دیگری است و تا به حال ماژیک ندیده است!
حال می خواهید ماژیک را به او معرفی کنید ؛    چه می کنید ؟
بدبهی است که شما سعی می کنید ماژیک را از نظر ساختار ظاهری و کارایی اش برای او تفسیر کنید تا او بتواند ماژیک را مجسم نماید.
در زبان های برنامه نویسی نیز همه چیز را به همین صورت تفسیر می نماییم.
سوالی که پیش می آید این است که آیا این چیزی که شما برای دوستتان درباره ماژیک بیان کردید ، برای هرنوع ماژیک صادق است ؟
بدیهی است که بین ماژیک های مختلف صفات و خصوصیات و رفتاری وجود دارد که مشترک است و برخی نیز همانند رنگ و شکل وجود دارد که بین ماژیک های مختلف متفاوت است.
سایت نت نیک|شی گرایی ، یک راه حل فوق العاده!
تعریفی که ما از ماژیک به دوستمان ارائه می دهیم بدین صورت است:
ماژیک وسیله ای است که رنگ دارد ، می تواند روی سطوح مختلف چیزی را بنویسد و درب دارد.
حال دوست ما خواهد فهمید که ماژیک در رنگ های مختلفی می تواند وجود داشته باشد و همه ماژیک ها عملیات نوشتن را می توانند انجام دهند.
خوب به همین سادگی هر چیزی را می توانیم برای دوستمان تشریح کنیم.

در زبان های شی گرا (همانند سی شارپ) هم به همین صورت همه چیز را تعریف می نماییم.
در سی شارپ برای تعریف هر شیء مفهومی به نام کلاس داریم.

هر کلاس شامل چند بخش اصلی است:
  • خصوصیت (Property)
  • سازنده (Cunstructor)
  • تابع


در زیر یک نمونه کلاس سی شارپ را می توانید ببینید:


خصوصبات در کلاس های سی شارپ:

از طریق این بخش شما می توانید خصوصیات مورد نظرتونو مشخص کنین. مثلا می تونین یک کلاس با نام  Majhik بسازین و بعد توش یک خصوصیت با نام Color از نوع string بذارین ، بعد یک خصوصیت دیگه با نام Height از نوع int براش بذارین و ....
و بدین صورت خضصوصیات شیء مورد نظرتونو مشخص کنین.

سازنده در کلاس های سی شارپ:

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

هر دوی ما ماژیک داریم ولی مشخصات ماژیک هامون با هم متفاوته ، از طرفی هم هر دوی ماژیک هامون کار نوشتن رو انجام میدن.

پس ما یک شیء ماژیک (یک تعریف کلی از ماژیک) داریم که می تونه همه نوع ماژیکی رو در بر بگیره و من یک نمونه از این شیء رو دارم و شما هم یک نمونه از این شیء رو دارین.

در سی شارپ هم به همین صورت است که شما ابتدا یک کلاس می سازین و بعد به تعداد مختلف از کلاستون می تونین نمونه (Instance) داشته باشین.
(یه جورایی ساختن کلاس  مثل این می مونه که شما یک نوع داده ای جدید ایجاد کنین و بعد بتونین کلی متغیر از این نوع داده ای جدید بسازین.البته این توضیح خیلی مناسب نیست ، ولی برای فهمیدن ماهیت کلاس می تونه مفید باشه.)

وقتی شما یک نمونه از یک کلاس می سازین باید این کارو با کمک دستور new انجام بدین.
حال آنکه شما باید بتوانید برای هر نمونه ، خصوصیات را مقدار دهی نمایید.
کانستراکتور همانند تابعی است که مقادیری رو بصورت ورودی می گیرد و آنها را درون خصوصیات ست می نماید.

برای این کار 2 تا راه حل دارید ، در روش اول ما از کانستراکتور خالی استفاده کرده ایم ، این کانستراکتور هیچ ورودی از ما نمی گیرد و بنابراین برای ست کردن خصوصیات باید تک تک مقادیر را جداگانه ست نماییم.


در روش دوم از کانستراکتور کامل استفاده کرده ایم که 3 ورودی می گیرد و تمامی خصوصیات را در یک خط ست نموده ایم.
بنابراین معمولا درون هر کلاس حداقل 2 عدد کانستراکتور می بایست بنویسیم (یک کانستراکتور بدون ورودی که کانستراکتور خالی نامیده می شود و یک کانستراکتور کامل که به تعداد خصوصیات کلاس ورودی می گیرد و ورودی ها را درون خصوصیات نمونه ایجاد شده می ریزد)

توابع در کلاس های سی شارپ:
هر کلاس می تواند رفتارها و اعمال مختلفی را برای ما انجام دهد ، این رفتارها و اعمال بوسیله توابع صورت می گیرد.
همانطور که می دانید در سی شارپ هر تابع دارای یک سری ورودی و یک خروجی است و یا اینکه اصلا خروجی ندارد.
از توابع برای تغییر در خصوصیات نمونه ها نیز می توان بهره برد.

در کدهای بالا مشاهده نمودید که من 2 تابع دارم که یکی بدون ورودی است و فقط یک متن را برمیگرداند و دیگری یک ورودی دارد و خروجی ندارد و برای تغییر دادن یک خصوصیت مورد استفاده قرار می گیرد.


امیدوارم که از این آموزش لذت برده باشید.
در مقاله بعدی ارث بری در کلاس های سی شارپ و مزایای مهم آن در ASP.Net را آموزش خواهم داد.
یا حق

نوشته شده در تاریخ سه شنبه 22 مرداد 1392    | توسط: ح.م    | طبقه بندی: آموزش سی شارپ،     | نظرات()