#c, آموزش قدم به قدم #c, سی شارپ

constructor در سی شارپ (Constructor in Csharp)

constructor در سی شارپ

در این جلسه به آموزش constructor در سی شارپ میپردازیم. این آموزش ادامه مبحث شی گرایی در سی شارپ است. پیش نیاز این آموزش شامل موارد زیر است:

  1. آشنایی با شی گرایی
  2. آشنایی با متد

شی گرایی

همه چیز در مورد اشیا است. هماطور که اشیا در دنیای واقعی رفتار میکنند، در دنیای نرم افزار نیز همانگونه اند. اشیا در یک برنامه تقریبا همه کار را انجام میدهند. به عنوان مثال ماشین ها شتاب میگیرند یا انسان ها راه میروند(انسان نیز یک شی است) یا هواپیماها پرواز میکنند و ماهی ها شنا میکنند. به طور مشابه ما در نرم افزار نیز ما اشیایی میسازیم که رفتاری خاص را انجام میدهند. و ما از آن برنامه انتظار داریم که رفتارهای اشیا را انجام دهند(راه رفتن، پرواز کردن …). پس موقعی که  نرم افزار ما اجرا میشود اشیا ما به وجود می آیند.

Constructor در سی شارپ

در آموزش قبل درمورد شی گرایی صحبت شد و کلاس Human را ساختیم. همانطور که گفته شد برای ساخت یک شی نیاز به کلاس داریم. در کلاس خود توصیفی از شی خود را مینویسیم و سپس آن را میسازیم. نکته ای که درباره ساخت یک شی در جلسه قبل گفته نشد constructor بود. Constructor قطعه ای کد است که به ما اجازه میدهد شی را بسازیم. ما در جلسه پیش از constructor استفاده کردیم ولی توضیح آن را به این جلسه موکول کردیم.

Constructor در سی شارپ بدین صورت عمل میکند که به ما اجازه ساخت یک شی را میدهد. وقتی ما یک کلاس را new میکنیم متد constructor آن صدا زده میشود و شی مورد نظر را میسازد. پس constructor متدی است است که شی را میسازد.متد constructor ویژگی های زیر را دارد:

  1. این متد چیزی return نمیکند.
  2. نام متد همنام کلاس است.
  3. در هنگام new کردن این متد صدا زده میشود تا شی ما ساخته شود.

Constructor در سی شارپ انواع مختلف دارد:

  1. Default constructor: اگر ما در کلاس خود از constructor که ورودی نداشته باشد استفاده کنیم.
  2. Parameterized constructor: وقتی متد constructor یک یا چندین ورودی داشته باشد.

کد constructor در سی شارپ

در آموزش شی گرایی در سی شارپ ما یک کلاس به نام Human ساختیم و چندین متد را در آن تعریف کردیم. کلاس Human به صورت زیر بود:

    public class Human
    {
        public String Name;
        public int age;
        public String Height;

        public void Speak(){
            Console.WriteLine("my Name is "+ Name);
            Console.WriteLine("i am "+ age+" year old");
            Console.WriteLine("my height is "+ Height +"meter");
        }

        public void eat(){
            Console.WriteLine("eating......");
        }

        public void walking(){
            Console.WriteLine("walking......");
        }

    }

حال ما برای ساخت constructor در سی شارپ از قوانینی که گفتیم استفاده میکنیم. در زیر نمونه default constructor آمده است:

        public Human() {
            Console.WriteLine("Default constructor ");

        }

در بالا یک constructor تعریف کردیم و وقتی از کلاس new میکنیم این متد اجرا خواهد شد.در ادامه کد Parameterized constructor را زده ایم:

        public Human(String newname) {
            Name = newname;
            age = 22;
            Height = "1.8";
        }

در بالا ما متد constructor ما یک ورودی میگیرد و برابر با متغیر name ما قرار میدهد. در آخر نیز یک Default constructor دیگر نوشتیم.

        public Human() {

        }

همانطور که میبینید کد بالا هیچ کاری انجام نمیدهد فقط وقتی کلاس را new میکنیم این متد صدا زده میشود تا شی ما ساخته شود!!!!

تست constructor در سی شارپ

برای تست کدهای constructor در سی شارپ، کد main زیر را بزنید:

        public static void Main (string[] args)
        {
            Human jack = new Human();

            jack.Speak();
            jack.eat();
            jack.walking();

            Console.WriteLine("-----------------");

            Human tom = new Human("tom");

            tom.Speak();
            tom.eat();
            tom.walking();

            Console.ReadKey ();
        }

در کد بالا ما دو Human به نام jack و tom ساختیم. Jack با استفاده از constructor که ورودی نداشت ساخته شد ولی tom با استفاده از constructor که ورودی داشت ساخته شد.

نوشته های مشابه

1 دیدگاه در “constructor در سی شارپ (Constructor in Csharp)

  1. دانیال گفت:

    درود ممنون

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *