علمی فناوری 10:30 - 30 آذر 1404

آموزش سی‌شارپ – بخش ۶۳
  • مقدمه

مباحث مرتبط با شیء گرایی در سی‌شارپ از اساسی‌ترین موضوعات این زبان برنامه‌نویسی است. در جلسه گذشته، موضوع Property را به اتمام رساندیم. در این بخش می‌خواهیم در رابطه با مفهوم جدیدی به نام Constructor و یا همان سازنده صحبت کنیم. پس همراه با ما باشید.

  • Constructor یا «سازنده» چیست؟

اغلب اوقات ممکن است بخواهید که مقادیر پیشفرضی را برای متغیرهای موجود در Classتان تعیین کنید؛ اینجاست که Constructor (سازنده) به کمک ما می‌آید.

فرض کنید که بخواهیم یک Property جدیدی به کلاسمان اضافه کنیم با این هدف که تعداد هدایایی (Presents) که یک فرد در تولد خودش دریافت کرده است را در خود ذخیره کند. پس ابتدا ما می‌توانید یک متغیر در کلاس HappyBirthday خودمان با این نام تعیین کنیم:

private int numberOfPresents;

این متغیر در حال حاضر مقداری را ندارد؛ ما می‌توانیم با استفاده از سازنده‌ برای این متغیر یک مقدار اولیه تعیین کنیم.

Constructor بدین منظور استفاده می‌شود تا مقادیری را برای متغیرهای خود بصورت پیشفرض تعیین کنید. هنگامی که یک Object از Class شما ساخته می‌شود، سی‌شارپ بدنبال سازنده آن می‌گردد و سعی می‌کند تا مقادیری که در داخل آن است را استفاده کند. هنگامی که شما هیچ سازندهای را در کلاس خود تعریف نکنید، سی‌شارپ خودش بصورت خودکار برایتان یک سازنده ایجاد می‌کند؛ حتی اگر هیچ متغیری نداشته باشید!

برای ایجاد سازنده، باید نام آن را دقیقاً همانند نام خود کلاس در نظر بگیرید. در این آموزش، شما می‌بایست نام سازنده خود را HappyBirthday بگیرید. پس سازنده ما بصورت زیر خواهد بود:

public HappyBirthday ()

{

}

دقت کنید که سازنده بصورت public است، اما هیچ مقدار بازگشتی‌ای مثل int و یا string ندارد. دلیل آن هم این است که یک سازنده قرار نیست مقداری را برگرداند؛ بلکه تنها وظیفه مقداردهی را برعهده دارد.

حال برای آنکه متغیر خود را با استفاده از سازنده مقدار دهی کنیم، از کدهای زیر استفاده کنید:

public HappyBirthday()

{

numberOfPresents = 0;

}

حال، وقتی که یک Object از این Class می‌سازید، سی‌شارپ با استفاده از این سازنده، مقدار متغیر را بصورت اولیه مقداردهی می‌کند. یعنی مقدار صفر را به آن نسبت می‌دهد.

اکنون بیایید که از متغیر numberOfPresents استفاده کنیم. Property زیر را در کلاس خود بگنجانید:

public int PresentCount

{

set { numberOfPresents = value; }

}

این Property بصورت Write-Only نوشته شده؛ یعنی تنها ما مقدار Set را برای آن تعریف کردیم که تنها بتوانیم مقادیر مورد نیازمان را به آن نسبت دهیم. متد getMessage ما نیز می‌تواند به‌شکل زیر تغییر پیدا کند:

private string getMessage(string givenMessage) {

string theMessage;

theMessage = “Happy Birthday” + givenName + “\n”;

theMessage += “Number of presents= ” + numberOfPresents.toString();

return theMessage;

}

حال می‌توانید در داخل کدهای مربوط به button جدید خود، مقدار جدیدی را نسبت دهید:

birthdayMessage.PresentCount = 5;

کدهای داخل button می‌بایست که بصورت زیر شده باشد:

presentProperty_p107و کدهای داخل کلاستان نیز می‌بایست که بصورت زیر باشد (البته می‌توانید از بخش‌هایی که بصورت کامنت می‌باشد صرفنظر کنید):

classHappyBirthday_p108 نرم‌افزار خود را اجرا کرده و بر روی button مورد نظر، کلیک کنید.

message_box_shahid2


4361163
 
پربازدید ها
پر بحث ترین ها

مهمترین اخبار علمی فناوری

علمی فناوری
«باشگاه خبرنگاران» رییس مرکز برنامه‌ریزی منابع انسانی و امور اداری وزارت آموزش و پرورش از ثبت‌نام در آزمون تخصصی (استخدامی) دانشجوی مهارت‌آموز تا اول دی ماه خبر داد و گفت: به منظور تأمین معلمان مورد نیاز هنرستان‌های فنی و حرفه‌ای و کار و دانش، تعداد ۳۰۰۰ دانش...
علمی فناوری
«باشگاه خبرنگاران» شرکت فرست گرافن با امضای یک توافق‌نامه انحصاری تازه با هالوسل استرالیافصل تازه‌ای در تولید و تجاری‌سازی خمیر کربنی گرافن‌تقویت‌شده گشوده است.
علمی فناوری
«باشگاه خبرنگاران» مرکز مدیریت بیماری‌های واگیر وزارت بهداشت درباره آخرین وضعیت بیماری‌های تنفسی حاد در هفته آخر آذر اعلام کرد که بیماران سرپایی و بستری مبتلا به آنفلوآنزا، کاهش یافته است، اما در عین حال هوای سرد و دورهمی‌های شب یلدا ممکن است بر روند بیماری ت...
علمی فناوری
«باشگاه خبرنگاران» مرکز مدیریت بیماری‌های واگیر وزارت بهداشت درباره آخرین وضعیت بیماری‌های تنفسی حاد در هفته آخر آذر اعلام کرد که بیماران سرپایی و بستری مبتلا به آنفلوآنزا، کاهش یافته است، اما در عین حال هوای سرد و دورهمی‌های شب یلدا ممکن است بر روند بیماری ت...
علمی فناوری
«باشگاه خبرنگاران» عضو شورای عالی آموزش و پرورش گفت: اخبار و گمانه‌زنی‌های مربوط به تغییر تأثیر پایه یازدهم در کنکور، موجب اضطراب شدید دانش‌آموزان شده است.
علمی فناوری
«باشگاه خبرنگاران» محققان در پژوهشی جدید تلاش کرده‌اند نقش یک ترکیب طبیعی را در کاهش آسیب‌های عصبی بررسی کنند و دریابند آیا می‌توان از آن برای بهبود برخی اختلالات مهم سیستم عصبی استفاده کرد.
علمی فناوری
«باشگاه خبرنگاران» وزیر آموزش‌وپرورش، با تأکید بر ضرورت ارتقای کیفیت آموزش، گفت: مدرسه تلویزیونی با رویکرد آموزش واقعی و عدالت‌محور به‌طور جدی دنبال می‌شود.
علمی فناوری
«باشگاه خبرنگاران» همزمان با فرارسیدن شب یلدا، همراه اول با ارائه بسته‌های ویژه مکالمه نامحدود و اینترنت، امکان ارتباطی طولانی‌تر در بلندترین شب سال را برای مشترکان خود فراهم کرده است.
علمی فناوری
«باشگاه خبرنگاران» نتایج یک مطالعه بحث‌برانگیز علل واقعی مرگ را آشکار کرده و نشان داده که برخلاف اعتقاد رایج پیری باعث مرگ نمی‌شود.
علمی فناوری
«باشگاه خبرنگاران» رئیس بنیاد ملی علم ایران از افزایش تعداد طرح‌ها و سقف حمایت‌ها خبر داد و تأکید کرد: ثبت درخواست سرآمدان علمی تنها چند دقیقه طول می‌کشد و باعث پیگیری نظام‌مند پرداخت‌ها و برنامه‌ها می‌شود.

مشاهده مهمترین خبرها در صدر رسانه‌ها

صفحه اصلی | درباره‌ما | تماس‌با‌ما | تبلیغات | حفظ حریم شخصی

تمامی اخبار بطور خودکار از منابع مختلف جمع‌آوری می‌شود و این سایت مسئولیتی در قبال محتوای اخبار ندارد

کلیه خدمات ارائه شده در این سایت دارای مجوز های لازم از مراجع مربوطه و تابع قوانین جمهوری اسلامی ایران می باشد.

کلیه حقوق محفوظ است