ما هو التحميل الزائد للمنشئ في Java

نشرت: 2022-11-16

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

جدول المحتويات

ماذا تقصد بالبناء في جافا؟

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

ما هي الحاجة إلى منشئ في جافا؟

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

ماذا تقصد بـ Constructor Overloading في Java؟

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

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

مثال على التحميل الزائد للمنشئ

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

StudentData.java

فئة StudentData

{

خاص int stuID؛

StuName السلسلة الخاصة ؛

العمر الخاص بالعمر

بيانات الطالب ()

{

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

ستويد = 100 ؛

stuName = "طالب جديد" ؛

العمر = 18 ؛

}

StudentData ( int num1، String str، int num2)

{

// منشئ ذو معلمات

stuID = num1 ؛

stuName = str ؛

stuAge = num2 ؛

}

// طرق Getter و setter

public int getStuID () {

عودة stuID

}

مجموعة باطلة عامة ( int stuID) {

هذا .stuID = stuID ؛

}

سلسلة عامة getStuName () {

عودة stuName ؛

}

setStuName العامة الباطلة ( String stuName) {

هذا .stuName = stuName ؛

}

getStuAge int العامة () {

عودة stuAge

}

setStuAge العامة باطلة ( تخزين غير مسبوق) {

هذا . stuAge = stuAge ؛

}

الرئيسية العامة الثابتة الفراغ ( سلاسل سلسلة [])

{

// سيستدعي إنشاء الكائن هذا المُنشئ الافتراضي

StudentData myobj = new StudentData () ؛

النظام . out .println ( "اسم الطالب هو:" + myobj.getStuName ())؛

النظام . out .println ( "عمر الطالب هو:" + myobj.getStuAge ())؛

النظام . out .println ( "معرف الطالب هو:" + myobj.getStuID ())؛

/ * سيستدعي إنشاء الكائن هذا المعلمات

* منشئ StudentData (int ، String ، int) * /

StudentData myobj2 = new StudentData ( 555 ، “Chaitanya” ، 25

النظام . out .println ( “Student Name is:“ + myobj2.getStuName ())؛

النظام . out .println ( "عمر الطالب هو:" + myobj2.getStuAge ())؛

النظام . out .println ( "معرف الطالب هو:" + myobj2.getStuID ())؛

}

}

انتاج:

اسم الطالب : طالب جديد _

عمر الطالب : 18 _

هوية الطالب هي : 100

اسم الطالب : Chaitanya _

عمر الطالب : 25 _

هوية الطالب : 555 _

المرجع: https://beginnersbook.com/2013/05/constructor-overloading/

تعلم دورات تطوير البرمجيات عبر الإنترنت من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.

فهم وظيفة هذا () في التحميل الزائد للمنشئ

مثال 2 _

{

int rollNum الخاص ؛

مثال 2 ()

{

rollNum = 100 ؛

}

مثال 2 ( int rnum )

{

هذا () ؛

/ * يتم استخدام هذا () للاتصال الافتراضي

* مُنشئ من مُنشئ ذي معلمات.

* يجب أن تكون العبارة الأولى دائمًا

* داخل جسم المنشئ.

* /

rollNum = rollNum + rnum ؛

}

getRollNum int العامة () {

عودة rollNum ؛

}

مجموعة باطلة عامة RollNum ( int rollNum) {

هذا .rollNum = rollNum ؛

}

الرئيسية العامة الثابتة الفراغ ( سلاسل سلسلة [])

{

OverloadingExample2 obj = new OverloadingExample2 ( 12

النظام . out .println (obj.getRollNum ()) ،

}

}

انتاج |

112

المرجع: https://beginnersbook.com/2013/05/constructor-overloading/
ندوة عبر الويب لتطوير البرمجيات الحصرية من upGrad من أجلك -
ندوة عبر الويب لتطوير البرمجيات الحصرية من upGrad من أجلك -

SAAS Business - ما هو الاختلاف؟

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

مثال آخر:

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

فئة عامة تجريبي

{

int rollNum الخاص ؛

// نحن لا نحدد مُنشئ بلا جدال هنا

عرض توضيحي ( int rnum)

{

rollNum = rollNum + rnum ؛

}

// طرق Getter و Setter

الرئيسية العامة الثابتة الفراغ ( سلاسل سلسلة [])

{

// سيستدعي هذا البيان مُنشئ no-arg

العرض التوضيحي = العرض التوضيحي الجديد () ؛

}

}

انتاج:

استثناء في الموضوع java.lang "الرئيسي" . خطأ : ترجمة لم يتم حلها

المشكلة: العرض التوضيحي للمنشئ ( ) غير محدد

الدورات والمقالات الشعبية في هندسة البرمجيات

البرامج الشعبية
برنامج PG التنفيذي في تطوير البرمجيات - IIIT ب برنامج شهادة Blockchain - PURDUE برنامج شهادة الأمن السيبراني - PURDUE ماجستير في علوم الكمبيوتر - IIIT ب
مقالات شعبية أخرى
راتب Cloud Engineer في الولايات المتحدة 2021-22 رواتب AWS Solution Architect في الولايات المتحدة راتب المطور الخلفي في الولايات المتحدة راتب المطور الأمامي في الولايات المتحدة
راتب مطور الويب في الولايات المتحدة الأمريكية أسئلة مقابلة Scrum Master في عام 2022 كيف تبدأ مهنة في الأمن السيبراني في عام 2022؟ الخيارات المهنية في الولايات المتحدة لطلاب الهندسة

شرح استخدام المُنشئ التحميل الزائد

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

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

مزايا التحميل الزائد للمنشئ في Java

فيما يلي المزايا الرئيسية لاستخدام المُنشئ التحميل الزائد أثناء كتابة برامج Java:

  • يمكنك تهيئة مثيلات الفئة بعدة طرق باستخدام التحميل الزائد للمنشئ.
  • مع التحميل الزائد للمنشئ ، يمكنك تحقيق تعدد الأشكال الثابت.
  • يقوم كل مُنشئ مُحمّل بشكل زائد بأداء مهام مختلفة لأغراض محددة.
  • يعمل التحميل الزائد للمُنشئ في Java على تسهيل عملية تحديد مُنشئين متعددين في فئة واحدة بتوقيعات محددة بشكل فريد.

استنتاج

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

برنامج شهادة تطوير مكدس كامل من upGrad لمطوري البرمجيات والمهنيين التقنيين

سواء كنت جديدًا في صناعة تطوير البرمجيات أو تتطلع إلى الارتقاء بالمهارات ، يجب أن تتعلم مهارات وتقنيات جديدة من خلال الدورات التدريبية ذات الصلة. التطوير الكامل هو أحد هذه الدورات.

تقدم upGrad برنامجًا تنفيذيًا في تطوير البرمجيات للمرشحين المهتمين ، وهو مصمم حصريًا لمتخصصي تكنولوجيا المعلومات ومطوري البرمجيات ومحترفي الدعم الفني والمحللين والخريجين الجدد الذين يتطلعون إلى المغامرة في مجال تطوير البرمجيات.

ستكون ماهرًا للغاية في JavaScript وستتعلم Microservices و MERN Stack من خلال هذه الدورة. إلى جانب تعلم ما يقرب من 10 لغات وأدوات برمجة ، ستتعلم أيضًا الأدوات المختلفة المستخدمة على نطاق واسع على Facebook و Walmart و Netflix و LinkedIn. يوفر البرنامج تجربة تعليمية غامرة في Cloud Labs.

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

تقدم الآن للتسجيل في الدورة!

ما فائدة منشئ في جافا؟

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

هل يحدث التحميل الزائد للمنشئ لفئة ثابتة؟

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

هل هناك فرق بين التحميل الزائد للمنشئ والحمل الزائد للأسلوب؟

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