logo

لماذا نستخدم المُنشئ في Java؟

في هذا القسم سوف نتعلم لماذا نستخدم المنشئ في Java و ما هو الغرض و حاجة المنشئ . وإلى جانب هذا، سنرى أيضًا أنواع المنشئ.

في جافا، البناء يشبه الطريقة. خاصية المنشئ هي أنه يجب أن يكون له نفس اسم اسم الفئة. ليس لديها نوع العودة. لا نطلب استدعاء المُنشئ يدويًا. يتم استدعاؤه ضمنيًا تلقائيًا أثناء إنشاء مثيل.

البرمجة الديناميكية

بمعنى آخر، المُنشئ هو أسلوب يتم استدعاؤه في وقت التشغيل أثناء إنشاء الكائن باستخدام عامل التشغيل الجديد. يستدعيه JVM تلقائيًا عندما نقوم بإنشاء كائن. عندما لا نحدد مُنشئًا في الفصل، يكون المُنشئ الافتراضي دائمًا موجودًا بشكل غير مرئي في الفصل. هناك الأسباب التالية لاستخدام المنشئات:

  • نستخدم المُنشئين لتهيئة الكائن بالحالة الافتراضية أو الأولية. قد لا تكون القيم الافتراضية للأوليات هي ما تبحث عنه.
  • سبب آخر لاستخدام المنشئ هو أنه يعلم عن التبعيات. بمعنى آخر، باستخدام المُنشئ، يمكننا أن نطلب من مستخدم تلك الفئة التبعيات المطلوبة.
  • يمكننا معرفة ما يحتاجه لاستخدام هذه الفئة، فقط من خلال النظر إلى المنشئ.

باختصار، نستخدم المنشئ ل تهيئة متغير المثيل للفئة.

أنواع البنائين

هناك نوعان من المنشئات في Java:

  • منشئ المعلمات
  • المنشئ الافتراضي

منشئ المعلمة

كما يوحي الاسم، فهو يقبل الوسائط (المعلمات). يتم استخدام المُنشئ ذو المعلمات إذا أردنا تهيئة متغيرات المثيل ديناميكيًا بالقيم المحددة في وقت إنشاء مثيل.

مثال

 public class Demo { int i; //parameterized constructor public demo(int i) { this.i = i; } } 

المنشئ الافتراضي

المنشئ الافتراضي لا يقبل أي معلمة. يتم استخدامه إذا أردنا تهيئة متغيرات الحالة بقيم معينة. تحتوي كل فئة Java على مُنشئ افتراضي بشكل غير مرئي. لذلك، لا نحتاج إلى تعريفه بشكل منفصل. تذكر أنه تتم إزالة المُنشئ الافتراضي من الفصل عندما نقوم بإنشاء مُنشئ ذي معلمات.

مثال

 public class Demo { int i; //default constructor public demo() { //the value of i is fixed this.i = 100; } } 

ملاحظة: عندما لا نوفر أي مُنشئ لبرنامج Java، يقوم مترجم Java بكتابة المُنشئ الافتراضي نيابة عن المبرمج ويقوم بتجميع البرنامج. يقوم بتهيئة متغيرات المثيل بالقيم الافتراضية. على سبيل المثال، 0 للعدد الصحيح، 0.0 للعدد العائم، وnull للسلسلة.

لنقم بإنشاء برنامج واستخدام المنشئ الافتراضي والمعلمات.

في فئة الموظف، قمنا بإنشاء مُنشئين، أحدهما هو المنشئ الافتراضي والآخر هو المنشئ ذو المعلمات. تحتوي فئة الموظف على متغيرين خاصين هما الاسم والعمر. في الطريقة الرئيسية، قمنا بإنشاء مثيل للفصل واستخدمنا كلا المُنشئين.

الممثل تشيرانجيفي

الموظف.جافا

 import java.util.Scanner; public class Employee { private String name; private int age; //parameterized constructor public Employee(String name, int age) { this.name =name; this.age = age; } //Default constructor public Employee() { this.name = 'William'; this.age = 28; } //method for printing the values public void show() { System.out.println('Name of the employee: '+this.name); System.out.println('Age of the employee: '+this.age); } //main method public static void main(String args[]) { Employee e=new Employee(); //Reading values from user Scanner sc = new Scanner(System.in); System.out.println('Enter the name of the employee: '); String name = sc.nextLine(); System.out.println('Enter the age of the employee: '); int age = sc.nextInt(); System.out.println(' '); //Calling the parameterized constructor System.out.println('Show() method for the parameterized constructor: '); new Employee(name, age).show(); //Calling the default constructor System.out.println('Show() method for the default constructor: '); new Employee().show(); } } 

انتاج:

 Enter the name of the employee: David Enter the age of the employee: 27 Show() method for the parameterized constructor: Name of the employee: David Age of the employee: 27 Show() method for the default constructor: Name of the employee: William Age of the employee: 28