سازنده ها در جاوا

سازنده ها در جاوا

Constructor یا تابع سازنده در زبان Java یک متد خاص است که برای مقداردهی اولیه ی فیلدهای کلاس و پرکردن آّبجکت با داده بکار می رود.

تابع constructor در زمان ایجاد آبجکت فراخوانی می شود. این تابع در واقع مقادیر را ساخته، فیلدهای کلاس را مقداردهی می کند و آبجکت ساخته شده از روی کلاس را با داده پر می نماید.

قواعد و استانداردهای تعریف تابع Constructor در Java

 

دو قاعده یا استاندارد وجود دارد که برای تعریف constructor باید از آن ها پیروی کرد:

  1. اسم constructor باید با اسم کلاس یکسان باشد.
  2. تابع constructor نباید هیچ نوع خروجی (مقدار بازگشتی) صریحی داشته باشد.

در کل دو نوع تابع سازنده وجود دارد که در زیر به آن ها اشاره می کنیم:

  1. تابع سازنده ی پیش فرض no-arg constructor) که پارامتری ندارد)
  2. تابع سازنده ی پارامتر دار (Parameterized constructor)

تابع سازنده ی پیش فرض Java

 

تابع سازنده ای که هیچ پارامتری نداشته باشد تحت عنوان constructor پیش فرض شناخته می شود.

دستور تعریف تابع سازنده ی پیش فرض:

< class_name >(){}

مثال کاربردی از تابع سازنده ی پیش فرض

 

در مثال حاضر قصد داریم که یک تابع سازنده ی بدون پارامتر (no-args) در کلاس Bike ایجاد کنیم. این تابع سازنده در زمان ساخت آبجکت از روی کلاس فراخوانی می شود.

class Bike1{

Bike1(){System.out.println(“Bike is created”);}

public static void main(String args[]){

Bike1 b=new Bike1();

}

}

خروجی:

Bike is created

 

تابع سازنده ی پارامتر دار (parameterized constructor) در Java

 

یک تابع سازنده که پارامتر دارد، تحت عنوان parameterized constructor یا سازنده ی پارامتردهی شده شناخته می شود.

مثال کاربردی از تابع سازنده ی پارامتردهی شده

 

در مثال پیشرو، می بینید که یک تابع سازنده از کلاس Student ایجاد کرده ایم که دو پارامتر ورودی دریافت می کند. البته در صورت تمایل می توان n تا پارامتر به عنوان ورودی به تابع سازنده ی پیش فرض پاس داد.

class Student4{

    int id;

    String name;

    Student4(int i,String n){

    id = i;

    name = n;

    }

    void display(){System.out.println(id+” “+name);}

    public static void main(String args[]){

    Student4 s1 = new Student4(111,”Karan”);

    Student4 s2 = new Student4(222,”Aryan”);

    s1.display();

    s2.display();

   }

}

خروجی:

۱۱۱ Karan

۲۲۲ Aryan