آموزش برنامه نویسی سی شارپ: متد سازنده (Constructor)

آموزش برنامه نویسی سی شارپ: متد سازنده (Constructor)

جلسه بیست و ششم: آشنایی با متد سازنده (Constructor)

 

آموزش زبان برنامه نویسی سی شارپ

 

Constructors يا سازنده، يک نوع متد است که براي مقدار دهي اوليه properties ها يا Field هاي يک Class از آن استفاده ميشود. ما با استفاده از اين متد، تصميم ميگيريم که properties و Field هاي يک Class، بطور پيشفرض داراي چه مقداري باشد. پس از آن، ما هر شي يا نمونه اي که از اين Class ايجاد کنيم، به طور پيشفرض داراي همان مقادير پيشفرض ميباشد. دقيقا مثل زماني که شما يک گوشي موبايل تهيه کنيد و مشاهده ميکنيد که به طور پيشفرض،  چندين عکس يا فيلم يا نرم افزار بر روي گوشي ميباشد. پس در صورت استفاده از متد Constroctor يا سازنده، زماني که يک شي يا object از اين Class ساخته شد، مقاديري را که قبلا درون properties ها يا Field هاي اين Class قرار داديم، به طور پيشفرض درون شي يا object هاي ساخته شده قرار ميگيرد. اينکه ما با استفاده از متد Constroctor يا سازنده، به طور پيفرض مقدار دهي اوليه Properties هاي يک Class را انجام ميدهيم، زودتر کار انجام ميشود.

 

آموزش زبان برنامه نویسی سی شارپ

 

اکنون بياييد يک مثال حل کنيم تا بيشتر با متد سازنده آشنا شويم. ميخواهيم يک مثال طرح کنيم و در آن با استفاده از متد سازنده، مقاديري را به طور پيشفرض درون Properties يا Field هاي يک Class قرار دهيم.

ابتدا يک Class ايچاد ميکنيم به نام Human که از لحاظ لغت به معني انسان ميباشد. ما در اينجا انسان را به عنوان يک Class در نظر گرفته ايم. کلاس انسان داراي خصوصيات و Properties هاي زيادي ميباشد. مانند رنگ پوست، اسم، مليت، رنگ مو و . . .

يادآوري: خصوصيات و Properties يک Class را تعريف ميکند. يک Class به تنهايي چيزي از خود ندارد.

class Human 
{

}

پس از ساخت Class، يک نوع متغير از نوع String تعريف ميکنيم و نام متغير را Name ميگذاريم. به اين نکته مهم توجه کنيد که اين متغير همان Properties کلاس human (انسان) ميباشد. اين متغير از نوع Public ميباشد.

اکنون وقت آن است که متد سازنده يا Constroctur را تعريف کنيم. به شکل زير:

class Human
{
public string Name;

    public Human()
    {

    }
}

در قسمت بالا، ابتدا عبارت Public را مينويسيم تا اين متد از نوع عمومي باشد. سپس نام متد Constroctur يا سازنده را مينويسيم.

نکته مهم: توجه کنيد، حتما نام متد Constroctur يا سازنده، بايد دقيقا مانند نام Class باشد. پس نام متد سازنده را Human در نظر ميگيريم و ان را مينويسيم. سپس دو علامت ( ) در آخر ميگذاريم. اکنون ما يک متد Constroctur به نام Human ايجاد کرديم. سپس با استفاده از دو کاراکتر آکلاد { } يک بدنه براي اين متد در نظر ميگيريم.  همانند بالا

در ابتداي جزوه گفتيم خاصيت اين متد، مقدار دهي اوليه properties يا Filed هاي يک Class ميباشد.  پس بايد مقادير اوليه را ايجاد کنيم.

class Human
{
public string Name;

        public Human()
      {
Name = “Amin Makarem”;
      }
}

در قسمت بالا مشاهده ميکنيد که من یک مقدار اولیه درون Properties این Class قرار دادم. یعنی یک مقدار از جنس رشته، درون Properties این Class که متغیر Name میباشد، قرار دادم.

Name يک متغير است. اما همانطور کف گفتيم، شامل خصوصيات و Properties کلاس انسان ميباشد. پس متغير Name، يک Properties يا ويژگي از Class انسان (Human) ميباشد.

در ادامه تابع Main را ايجاد ميکنم. گفتيم اين متد يا تابع Main براي اجرا شدن برنامه ضروري ميباشد. در جلسات پيش در مورد متد Main صحبت کرده ايم. در آخر براي متد Main يک بدنه ايجاد ميکنيم.

class Human
{
public string Name;

    public Human()
{
Name = “Amin Makarem”;
}

      static void Main(string[] args)
     {

     }
}

سپس در ادامه، يک نمونه يا شي از کلاس Human ايجاد ميکنيم.

 

class Human
{
public string Name;

          public Human()
{
Name = “Amin Makarem”;
}

           static void Main(string[] args)
{

          Human Myobject = new Human();

         }
}

در قسمت بالا، مشاهده میکنید که درون بدنه متد Main، با استفاده از عبارت ;()Human Myobject = new Human ، یک نمونه یا شی از کلاس Human ایجاد کردیم و نام آن را Myobject گذاشتیم. توجه کنيد که اين شي يا نمونه اي که اکنون ايجاد کرديم، داراي مقادير دروني ميباشد که ما قبلا درون Properties يا همان متغير Name قرار داديم. پس ما هربار که يک نمونه يا شي از کلاس Human ايجاد کنيم، تمام آن ها به صورت يشفرض، داراي يک مقدار اوليه ميباشند. من نام خودم را به صورت يک مقدار اوليه درون متغير Name قرار دادم.

نکته: هنگام ايجاد شي، متد سازنده فراخواني ميشود.

سپس در خط بعد، دستور ;()Console.WriteLine را مینویسیم. همانند زیر:

class Human
{
public string Name;

public Human()
{
Name = “Amin Makarem”;
}

          static void Main(string[] args)
{

          Human Myobject = new Human();

           Console.WriteLine();
}
}

درون پرانتز مربوط به دستور Console.WriteLine، ابتدا با استفاده از نام شي يا نمونه اي که ايجاد کرديم  مينويسيم . سپس بعد از آن با استفاده از دات يا ” . ” نام Properties را مينويسيم تا با استفاده از نمونه يا شي Myobject بتوانيم به مقادير درون Name دسترسي پيدا کنيم. همانند زير:

 

class Human
{
public string Name;

public Human()
{
Name = “Amin Makarem”;
}

          static void Main(string[] args)
{

          Human Myobject = new Human();

           Console.WriteLine(Myobject.Name);
}
}

پس با استفاده از عبارت Myobject.Name ميتوانيم به مقادير دروني  Name يا همان Properties دسترسي پيدا کنيم. اگر برنامه را اجرا کنید، رشته یا متن Amin Makarem در محیط Console چاپ میشود.

آشنايي با متد سازنده

نکته: اکنون تمام شي يا Object هايي که شما در کلاس Human ايجاد ميکنيد. به طور پيشفرض داراي يک مقدار اوليه ميباشند.

اگر شما در برنامه متد سازنده را ايجاد نکنيد، برنامه سي شارپ به طور پيشفرض مقاديري اوليه را درون Properties يا Filed ها ايجاد ميکند. اما در اين صورت ديگر نميتوانيد به طور پيشفرض properties يا Field هاي يک Class را مقدار دهي کنيد.

در صورت عدم ايجاد متد سازنده:

اگر ما در Class یک متغیر از نوع String داشتیم و هیچ مقداری به آن ندهیم، مقداری که برنامه به صورت پیشفرض درون Properties یا متغیر قرار میدهد یک مقدار تهی (خالی) است.

اگر ما در Class یک متغیر از نوع int داشتیم، برنامه به صورت پیشفرض، عدد ۰ را به عنوان یک مقدار اولیه درون Properties یا متغیر int قرار میدهد.

به اين نوع متد سازنده، متد سازنده پيشفرض يا Defulte گفته ميشود. 

در جلسات آینده، درمورد اين موضوع بيشتر صحبت خواهيم کرد. با ما همراه باشيد.

محمد امین مکارم

مطالب مرتبط

نقد و بررسی‌ها

نظر: