ITSI.IR – خب ، این درس رو با مثالی که در درس قبل ایجاد کردیم شروع می کنیم . در درس قبل به یاد دارید زمانیکه یک شی از کلاس GradeBook ایجاد کردید متغیر نمونه آن یعنی courseName بطور پیش فرض با null مقدار دهی شده بود . حال اگر بخواهیم هنگام ایجاد یک شی از GradeBook یک مقدار به آن دهیم باید چه کاری انجام دهیم ؟
در این درس شما را با سازنده ها ( constructor ) آشنا می کنیم . هنگامی که شما یک شی از یک کلاس را ایجاد می کنید ( اعلان می کنید ) یک سازنده نیز ایجاد می شود که شی آن را کلاس را مقدار دهی اولیه می کند . شما هنگامی که از کلمه new برای ایجاد شی از کلاس استفاده می کنید در واقع به صورت پیشفرض سازنده ایجاد می شود و با مقدار null مقدار دهی اولیه می شود . اگر کلاس سازنده ای نداشته باشد یعنی علامت () در هنگام ایجاد شی کلاس قرار دهید این کار بیانگر فراخوانی کلاس بدون حضور آرگومان است . سازنده پیشفرض به صورت public بوده و برای هر کلاسی که سازنده ای برای آن قرار نداده باشید ایجاد می شود.
مقدار دهی سفارشی سازنده ها :
شما می توانید هنگامی که کلاسی را ایجاد می کنید سازنده دلخواه خود را مشخص کنید . برای مثال می خواهید نام دوره ای دلخواه را در هنگام ایجاد یک شی از کلاس قرار دهید به صورت زیر :

در این قطعه کد هنگامی که نمونه ای شی ایجاد می شود آرگومان مشخص شده به سازنده شی GradeBook ارسال می شود کار مقدار دهی اولیه courseName را انجام می دهد . در این مثال باید ما یک سازنده از نوع string را برای کلاس خود در نظر گرفته باشیم .
کد زیر را بررسی کنید :

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

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

برخلاف نام متد ، سازنده نیازی به مشخص کردن نوع برگشتی ندارد ( حتی void ) .
مقدار دهی اولیه شی های GradeBook با یک سازنده سفارشی
در کد زیر یک شی از GradeBook ایجاد و آن می شود و مقدار دهی می شود . سازنده کلاس GradeBook با آرگومان “C Sharp oop.com” برای مقدار دهی اولیه نام دوره فراخوانی می شود .
رابطه ایجاد-شی در سمت راست = یک مراجعه به شی جدید برگشت می دهد ، و به متغیر gradeBook1 تخصیص می یابد . همین کار را برای gradeBook2 نیز انجام می دهیم .

بجر در مواردی که نیازی به مقدار دهی اولیه متغیر های نمونه کلاس ضروری نیست ، یک سازنده پیش فرض در نظر بگیرید که حتما متغیر های نمونه کلاس را با مقادیر مناسب به هنگام ایجاد هر شی جدید مقدار دهی اولیه نماید .
مقدار دهی اولیه شی ها با سازنده ها

خروجی

همانند متد ها ، سازنده ها هم می توانند آرگومان دریافت نمایند .
تفاوت متد ها و سازنده ها : سازنده ها نمی توانند مقداری را برگشت دهدن ، از این رو آنها نمی توانند نوع برگشتی را مشخص کنند . معمولا سازنده ها به صورت public اعلان می شوند . اگر کلاسی حاوی سازنده نباشد ، متغیر های نمونه کلاس با مقادیر پیش فرض خود مقدار دهی اولیه خواهند شد
صفر برای نوع های عددی |  False برای نوع های bool | Null برای نوع های مراجعه .
اگر سازنده های برای کلاس در نظر نگرفته باشید ، C# برای آن کلاس سازنده پیش فرض تدارک نخواهد دید .

دانلود فایل آموزش

پسورد : itsi.ir