جافا هي واحدة من لغات البرمجة الأكثر شعبية ، والذي يستخدم على نطاق واسع لتطوير التطبيقات والمواقع. عند العمل مع جافا ، قد تواجه أحيانا وضعا حيث تحتاج إلى استدعاء منشئ واحد من آخر في فئة. في هذه المقالة ، سنلقي نظرة على خطوات بسيطة ونصائح مفيدة لمساعدتك على استدعاء منشئي جافا من منشئين آخرين في صفك.
الخطوة الأولى هي إنشاء منشئات متعددة في صفك. يجب أن يكون لكل منشئ معلمات أو مجموعات معلمات مختلفة لتوفير طرق مختلفة لتهيئة مثيل لفئة. ثم يمكنك استدعاء منشئ واحد من آخر باستخدام الكلمة الرئيسية"هذا". عند استخدام" هذا " مع الحجج ، سوف جافا تبحث عن منشئ مع المعلمات المناسبة وندعو ذلك.
بالإضافة إلى ذلك ، يمكنك أيضا استخدام "هذا" لاستدعاء منشئ الفئة الأساسية من منشئ الفئة المشتقة. للقيام بذلك ، ببساطة إضافة مكالمة إلى "سوبر" مع الحجج اللازمة في السطر الأول من منشئ الطبقة المشتقة. سيسمح لك ذلك بإعادة استخدام رمز الفئة الأساسية وتهيئة أعضائها قبل تهيئة أعضاء الفئة المشتقة.
على سبيل المثال ، إذا كان لديك فئة "سيارة" مع العديد من المنشئات ، بما في ذلك المنشئ الافتراضي والمنشئ مع المعلمة "نموذج". في المنشئ الافتراضي ، يمكنك استدعاء المنشئ بمعلمة "النموذج" ، وتمريرها القيمة"غير معروف".
في هذه المقالة ، قمنا بمراجعة الخطوات البسيطة والنصائح المفيدة لاستدعاء منشئ جافا من آخر في الفصل. باستخدام الكلمات الرئيسية" هذا "و" سوبر " ، يمكنك تنظيم تهيئة مثيلات الفصل بشكل فعال وإعادة استخدام رمز الفئات الأساسية. يمكن أن يكون هذا مفيدا عند العمل مع المشاريع الكبيرة أو مجرد تحسين الهيكل العام للرمز الخاص بك. حظا سعيدا مع التنمية!
- واحدة من المشاكل الرئيسية لمنشئي جافا
- كيفية استدعاء منشئ من منشئ آخر
- قواعد استدعاء المنشئين
- مثال على استخدام الكلمة الرئيسية الفائقة
- خيارات لاستخدام هذا في استدعاء منشئ
- 1. استدعاء منشئ آخر من نفس الفئة باستخدام هذا ()
- 2. تمرير الكائن الحالي كوسيطة إلى منشئ آخر باستخدام هذا
- توصيات لتبسيط استدعاء الصانعين
- القيود عند استدعاء المنشئ
- نصائح مفيدة حول استخدام المنشئات
- سؤال وجواب
- كيف يمكنني استدعاء منشئ جافا واحد من آخر في فئة?
- هل من الممكن استدعاء الصانعين من فئات مختلفة في جافا?
- هل من الممكن استدعاء منشئ مع الحجج من منشئ آخر باستخدام هذه الكلمة?
واحدة من المشاكل الرئيسية لمنشئي جافا
منشئات جافا هي واحدة من العناصر الهامة للغة البرمجة جافا. يتم استخدامها لإنشاء الكائنات وتهيئتها. ومع ذلك ، في بعض الأحيان هناك حالات عندما تحتاج إلى استدعاء منشئ واحد من آخر داخل نفس الفئة. وقد تكون هناك بعض المشاكل هنا.
واحدة من المشاكل الرئيسية التي يمكن مواجهتها عند استدعاء منشئ جافا واحد من آخر هو التبعية الدورية. يحدث الاعتماد الدوري عندما يتصل اثنان من المنشئين ، على سبيل المثال ، المنشئ أ والمنشئ ب ، ببعضهما البعض ، لتشكيل حلقة مغلقة.
يمكن أن تؤدي مشكلة التبعية الدورية إلى تكرار دائم وخطأ في التدفق. لا يسمح لك مترجم جافا بإنشاء مثل هذه التبعيات الدورية في المنشئات ، لذلك عند محاولة استدعاء منشئ يستدعي بالفعل المنشئ الحالي ، سيتم إنشاء خطأ تجميع.
لتجنب مشكلة التبعية الدورية ، تحتاج إلى تحليل منطق استدعاء المنشئين داخل الفصل بعناية وتجنب المكالمات العودية. إذا كنت بحاجة إلى نقل قيم المعلمات من منشئ إلى آخر ، فيمكنك استخدام التحميل الزائد للمنشئ أو استخدام طرق مساعدة.
كيفية استدعاء منشئ من منشئ آخر
في جافا ، من الممكن استدعاء منشئ واحد من آخر داخل نفس الفئة. يمكن أن يكون هذا مفيدا إذا كان لديك العديد من المنشئات التي تنفذ إجراءات مماثلة ولا تريد تكرار التعليمات البرمجية.
لاستدعاء منشئ من منشئ آخر ، استخدم هذه الكلمة الرئيسية مع الوسائط اللازمة. يوجد أدناه مثال على رمز لاستخدام هذه الوظيفة:
فئة عامة ميكلاس {
خاص كثافة العمليات العاشر;
الباحث الخاص ذ;
العامة ميكلاس (إنت س ، إنت ص) {
هذا.س = س;
هذا.ص = ص;
}
ميكلاس العامة (قيمة إنت) {
هذا (القيمة ، 0) ؛ / / استدعاء منشئ آخر مع وسيطة واحدة
}
}
في المثال أعلاه ، لدينا اثنين من الصانعين: واحد يأخذ وسيطتين (س و ص) ، والآخر يأخذ وسيطة واحدة فقط (القيمة). عندما يتم استدعاء المنشئ الثاني ، فإنه يمرر وسيطة القيمة إلى منشئ آخر باستخدام هذه الكلمة الأساسية ويضبط القيمة ص إلى 0.
يمكنك أيضا استدعاء منشئ من منشئ آخر موجود في فئات مختلفة. للقيام بذلك ، ما عليك سوى إنشاء مثيل للفئة التي تحتوي على المنشئ الذي تريد الاتصال به ، واستدعاء المنشئ باستخدام هذا المثيل. أدناه مثال:
فئة عامة ميكلاس {
خاص كثافة العمليات العاشر;
الباحث الخاص ذ;
العامة ميكلاس (إنت س ، إنت ص) {
هذا.س = س;
هذا.ص = ص;
}
}
فئة عامة فئة أخرى {
خاصة ميكلاس ميكلاس;
فئة أخرى عامة () {
ميكلاس = نيو ميكلاس (10، 20); // استدعاء منشئ من فئة أخرى
}
}
في المثال أعلاه ، لدينا فئة ميكلاس مع منشئ يأخذ وسيطتين. ثم نقوم بإنشاء فئة أخرى أخرى تحتوي على مثيل من ميكلاس واستدعاء منشئ لها ، ويمر عليه القيم 10 و 20.
الآن أنت تعرف كيفية استدعاء منشئ من منشئ آخر في جافا. يمكن أن تكون هذه أداة مفيدة عندما تحتاج إلى إعادة استخدام التعليمات البرمجية التي تنفذ إجراءات مماثلة.
قواعد استدعاء المنشئين
في جافا ، يمكن أن يكون لكل فئة منشئات متعددة. المنشئ هو طريقة خاصة يتم استدعاؤها عند إنشاء كائن فئة. عند استدعاء المنشئ ، يمكنك تمرير الوسائط التي سيتم استخدامها لتهيئة حقول الكائن.
.
إذا كان هناك العديد من المنشئين في الفصل ، فسيتم استخدام قوائم معلمات مختلفة أو ترتيبها لتمييزها. في جافا ، يسمح باستدعاء منشئ واحد من آخر ، والذي يمكن أن يكون مفيدا لإعادة استخدام الكود وتبسيط تهيئة الكائن.
يشير إلى الكائن الحالي ويسمح لك بالوصول إلى حقوله وأساليبه. لاستدعاء المنشئ بمعلمات معينة ، يتم استخدام بناء الجملة التالي:
فئة عامة ميكلاس {
اسم السلسلة الخاصة;
العمر الدولي الخاص;
ميكلاس العامة (اسم السلسلة) {
هذا (الاسم ، 0);
}
ميكلاس العامة (اسم السلسلة ، إنت العمر) {
this.name = الاسم;
هذا.العمر = العمر;
}
}
.
يجب أن يكون استدعاء منشئ من منشئ آخر هو البيان الأول في نص المنشئ. خلاف ذلك ، سيقوم المترجم بإرجاع خطأ.
مثال على استخدام الكلمة الرئيسية الفائقة
في جافا ، يتم استخدام الكلمة الرئيسية الفائقة لاستدعاء منشئ الطبقة الفائقة من فئة فرعية. يسمح للفئة الموروثة بالوصول إلى أعضاء الطبقة الفائقة الفورية.
النظر في مثال:
فئة الحيوان {
اسم السلسلة الخاصة;
// منشئ الطبقة الفائقة
الحيوان (اسم السلسلة) {
this.name = الاسم;
}
الكلام باطل () {
النظام.خارج.برينتلن(" أنا حيوان");
}
}
فئة القط يمتد الحيوان {
العمر الدولي الخاص;
// منشئ الفئة الفرعية
القط (اسم السلسلة ، العمر الدولي) {
// استدعاء منشئ الطبقة الفائقة باستخدام السوبر
سوبر الكلمة (الاسم);
هذا.العمر = العمر;
}
الكلام باطل () {
النظام.خارج.برينتلن ("مواء!");
}
فواد ديسبلاينفو () {
// الوصول إلى عضو في الطبقة الفائقة
النظام.خارج.برينتلن ("الاسم:" + سوبر.جيتنام());
النظام.خارج.برينتلن ("العمر:" + العمر);
}
// جالبة لاسم الحيوان
سلسلة جيتنام () {
اسم الإرجاع;
}
}
في هذا المثال ، لدينا فئة حيوان مع خاصية الاسم وطريقة التحدث (). تحتوي هذه الفئة على منشئ يقبل معلمة واحدة-اسم الحيوان.
ثم لدينا فئة فرعية للقطط ترث من فئة الحيوانات. يتم تعريف عضو جديد في الفئة الفرعية-عمر القط ، والكلام() وطرق العرض (). في طريقة القط () ، يتم استدعاء منشئ الطبقة الفائقة باستخدام الكلمة الرئيسية الفائقة. هنا نمرر اسم القط إلى منشئ الطبقة الفائقة.
وظيفة ديسبلاينفو () مخرجات المعلومات حول اسم القط والعمر عن طريق الوصول إلى طريقة جيتنام() باستخدام الكلمة السوبر.
وبالتالي ، فإن استخدام الكلمة الرئيسية الفائقة يسمح لك باستدعاء المنشئ وطرق الطبقة الفائقة داخل الفئة الفرعية عند الضرورة.
خيارات لاستخدام هذا في استدعاء منشئ
يتم استخدام هذه الكلمة الرئيسية في جافا للإشارة إلى الكائن الحالي. في سياق استدعاء منشئ ، يمكن استخدام هذا لاستدعاء منشئ آخر من نفس الفئة.
إذا كان الفصل يحتوي على منشئات متعددة ، فقد يكون هذا مفيدا لإعادة استخدام التعليمات البرمجية وتوفير خيارات تهيئة مختلفة للكائن.
في جافا ، هناك طريقتان لاستخدام هذا عند استدعاء منشئ:
- هذا () هو دعوة إلى منشئ آخر من نفس الفئة
- هذا هو تمرير الكائن الحالي كوسيطة إلى منشئ آخر
دعونا ننظر إلى هذين الخيارين بمزيد من التفصيل.
1. استدعاء منشئ آخر من نفس الفئة باستخدام هذا ()
يمكن تحميل المنشئات بشكل زائد في جافا ، مما يعني أن الفئة يمكن أن تحتوي على منشئات متعددة بمعلمات مختلفة. باستخدام هذا () ، يمكنك استدعاء منشئ واحد من آخر لتجنب تكرار التعليمات البرمجية.
مثال:
شخص الطبقة العامة {
اسم السلسلة الخاصة;
العمر الدولي الخاص;
شخص عام () {
هذا ("جون دو" ، 30) ؛ / / استدعاء منشئ آخر باستخدام هذا ()
}
الشخص العام(اسم السلسلة ، العمر الدولي) {
this.name = الاسم;
هذا.العمر = العمر;
}
}
في المثال أعلاه ، منشئ دون معلمات يدعو منشئ آخر ، ويمر القيم" جون دو " و 30 لذلك. وبالتالي ، لا يتم تكرار رمز تهيئة حقول الاسم والعمر.
2. تمرير الكائن الحالي كوسيطة إلى منشئ آخر باستخدام هذا
يمكنك أيضا استخدام هذا لتمرير الكائن الحالي كوسيطة إلى منشئ آخر.
مثال:
مستطيل الطبقة العامة {
عرض كثافة العمليات الخاصة;
ارتفاع كثافة العمليات الخاصة;
المستطيل العام () {
هذا (0 ، 0) ؛ / / تمرير الكائن الحالي كوسيطة
}
المستطيل العام (عرض كثافة العمليات ، ارتفاع كثافة العمليات) {
هذا.العرض = العرض;
هذا.الارتفاع = الارتفاع;
}
}
في المثال أعلاه ، يقوم المنشئ بدون معلمات باستدعاء منشئ آخر ، ويمرر قيم العرض والارتفاع للكائن الحالي إليه. يتيح لك ذلك تعيين القيم الافتراضية للعرض والارتفاع ، وكذلك استخدام منشئ آخر لتعيين قيم مخصصة.
يتيح لك استخدام هذا في استدعاء المنشئ تبسيط الكود وجعله أكثر قابلية للقراءة. كما يوفر المرونة في تهيئة الكائنات بمعلمات مختلفة.
توصيات لتبسيط استدعاء الصانعين
يمكن أن يكون استدعاء المنشئين في جافا عملية معقدة ومربكة إلى حد ما. ومع ذلك ، هناك عدد من التوصيات التي ستساعد في تبسيط هذه المهمة:
- استخدم طرق المصنع. طرق المصنع هي الطرق التي تنشئ وتعيد مثيلات الفئات. يمكن أن تكون مفيدة إذا كنت بحاجة إلى تنفيذ إجراءات إضافية عند إنشاء كائن. على سبيل المثال:
فئة عامة ميكلاس {
- خاصة ميكلاس () {
// منشئ خاص
}
الجمهور ثابت ميكلاس كريتينستانس () {
ميكلاس أوبج = جديد ميكلاس ();
// إجراءات إضافية