java, آموزش قدم به قدم جاوا, جاوا, شی گرایی در جاوا

Constructor در جاوا (object oriented programming)

Constructor در جاوا

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

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

شی گرایی

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

Constructor در جاوا

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

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

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

Constructor در جاوا انواع مختلف دارد:

  1. Default constructor: اگر ما در کلاس خود از constructor استفاده نکنیم خود جاوا یک constructor در نظر میگیرد که متدی خالی است و به آن Default constructor میگوییم
  2. no-arg constructor : وقتی متد constructor هیچگونه ورودی نداشته باشد.
  3. Parameterized constructor: وقتی متد constructor یک یا چندین ورودی داشته باشد.

کد constructor در جاوا

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

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

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

     public void eat(){
          System.out.println("eating......");
     }

     public void walking(){
          System.out.println("walking......");
     }


}

حال ما برای ساخت constructor در جاوا از قوانینی که گفتیم استفاده میکنیم. در زیر نمونه no-arg constructor آمده است:

     public Human() {
          System.out.println("no-arg constructor ");
     }

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

     public Human(String newname) {
          Name = newname;
     }

در بالا ما متد 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();

          System.out.println("-----------------");

          Human tom = new Human("tom");

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

     }

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

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

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

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