PDA

View Full Version : تعریف سازنده ها در برنامه نویسی



mehrdad_ir_2003
یک شنبه 12 دی 1389, 22:49 عصر
از دوستان کسی میتونه بگه سازنده ها چی هستند و به چه کار میان تو نوشتن برنامه تو سی شارپ و چرا ازشون استفاده میکنیم

abbas.oveissi
یک شنبه 12 دی 1389, 23:24 عصر
سازندها زمانی که یک شیء از کلاسی میخوای بسازی ،در واقع new میکنی اون کلاس رو اجرا میشن ، سازنده باید هم اسم کلاس باشند و مانند متد متغیر هایی رو به عنوان ورودی میگیره تا در سازنده استفاده بشن .ساختار آن مانند زیر است :


public [Class name](parametr haye voroodii)
{

}

مثال :


public class MyClass
{
public MyClass()
{
}
}

abbas.oveissi
یک شنبه 12 دی 1389, 23:35 عصر
من خودم زمانی که بخوام یک سری متغیرهایی که همه شیء هام در ابتدا لازم دارند رو،در سازنده مقدار دهی میکنم . مثلا یک کلاس داریم به اسم Student حالا میخوای چنتا شیء از این کلاس بسازیم،هر شیء از کلاس Student دارای 3 فیلد است : 1-اسم 2-فامیلی 3-معدل . حالا کد این مثال رو در زیر نگاه کن :



using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Student student1 = new Student("abbas", "oveissi", "17.39");
Student student1 = new Student("hamed", "mohseni", "10.45");
Student student1 = new Student("ali", "asghari", "16.34");
}
}

class Student
{
public Student(string name,string family,string avarage)
{
this.Name = name;
this.Family = family;
this.Avarege = avarage;
}
private string Name, Family;
private float Avarege;
}
}


الان با استفاده از سازنده کلاس Student هر شیء که ساختم رو مقدار دهی کردم . حالا یک کلاس میتونه چنتا سازنده داشته باشه که در تعداد متغیر های ورودی تفاوت داشته باشند .

تا اینجا توضیح دادم،امیدوارم تونسته باشم کمکت کرده باشم،اگه سوالی هست بپرس،سعی کردم کامل بگم اما حق میدم از نحوه توضیح دادن من چیزی متوجه نشی :لبخند:

MaHyaR.DrAcOulA
دوشنبه 13 دی 1389, 07:59 صبح
من که اصلا متوجه نشدم !!!
چه کاریه این همه راه رفتی؟
میشه بیشتر در مورد کدت توضیح بدی شاید وقتی درکش کنم واسم راحت تر باشه
ممنون

tooraj_azizi_1035
دوشنبه 13 دی 1389, 08:33 صبح
سلام،
سازنده ها یا Constructor ها متدهایی ویژه از یک کلاس هستند که هرگاه کلاس ساخته می شود فراخوانی می شوند. یک کلاس ممکن است بیش از یک Constructor داشته باشد که آرگومان های متفاوتی را نسبت به بقیه دریافت می کند. Constructor ها برنامه نویس را قادر می سازند که مقادیر پیش فرض فیلدهای کلاس را مقداردهی کنند. اگر شما Constructor ی برای کلاس تان ایجاد نکنید، #C به طور پیش فرض یک Constructor برای کلاس شما ایجاد می کند و مقادیر فیلد های کلاس شما را با مقادیر پیش فرض خودش پر می کند. کلاس های static هم می توانند Constructor داشته باشند.
Constructor یک متد در درون کلاس است که هم نام با نام کلاس است. در مثال زیر، یک کلاس با نام Taxi با استفاده از یک Constructor ساده تعریف شده است:

public class Taxi
{
public bool isInitialized;
public Taxi()
{
isInitialized = true;
}
}

class TestTaxi
{
static void Main()
{
Taxi t = new Taxi();
Console.WriteLine(t.isInitialized);
}
}

خروجی کد بالا True هست.
Constructor ی که هیچ پارامتری نمی گیرد Constructor پیش فرض نامیده می شود. Constructor ها به طور پیش فرض public هستند. با تعریف private آنها شما ساخت نمونه از کلاستان را ممنوع می کنید:

class NLog
{
// Private Constructor:
private NLog() { }

public static double e = Math.E; //2.71828...
}


این هم یک Constructor که پارامتر می گیره:


public class Employee
{
public int salary;

public Employee(int annualSalary)
{
salary = annualSalary;
}

public Employee(int weeklySalary, int numberOfWeeks)
{
salary = weeklySalary * numberOfWeeks;
}
}


منبع: http://msdn.microsoft.com/en-us/library/ms173115.aspx

abbas.oveissi
دوشنبه 13 دی 1389, 11:25 صبح
من که اصلا متوجه نشدم !!!
چه کاریه این همه راه رفتی؟
میشه بیشتر در مورد کدت توضیح بدی شاید وقتی درکش کنم واسم راحت تر باشه
ممنون

:قهقهه: خب ببین آقا تورج چی نوشته،احتملا میفهمیش :لبخند:


سلام،
سازنده ها یا Constructor ها متدهایی ویژه از یک کلاس هستند که هرگاه کلاس ساخته می شود فراخوانی می شوند. یک کلاس ممکن است بیش از یک Constructor داشته باشد که آرگومان های