لقد ناقشنا بالفعل كل شيء عن Javaالمنشئين في برنامجنا التعليمي السابق وقد ناقشنا أيضًا أنواعًا مختلفة من المنشئين بمعنى. منشئ افتراضي ومنشئ معلمات ومنشئ نسخ. قبل الخوض في تفاصيل الحمل الزائد للمنشأة ، سنقوم بإعادة تلخيص المنشئ مرة أخرى.
تلخيص المنشئ
- يتم استخدام المُنشئين لتعيين القيم الأولية لمتغيرات الحالة للفئة فور إنشاء الكائن.
- يتم استدعاء المُنشئ دائمًا بواسطة عامل تشغيل جديد.
- سيتم استدعاء مُنشئ افتراضي بدون وسيطات تلقائيًا بواسطة Java Virtual Machine (JVM).
- يتم تعريف المنشئين تمامًا كما نعلن الطرق ، باستثناء أن المنشئ ليس لديه أي نوع إرجاع.
ما هو البناء الزائد في جافا
عندما يكون للمنشئي الاسم نفسه مع وسيطات مختلفة (قد يختلف في عدد / نوع / تسلسل الحجج) ، ما يسمى التحميل الزائد للمنشئ.
الخصائص:
- في الفصل الدراسي ، لا يسمح مفهوم التحميل الزائد للمنشئ للمستخدم الخارجي أن يكون على دراية بالمعالجة الداخلية للنظام.
- يختلف مُنشئو التحميل الزائد في عدد المعلمات أو نوع المعلمات أو تسلسل المعلمات.
- تميز JVM الشركات الإنشائية على أساس المعايير التالية
- عدد المعلمات.
- نوع المعلمات.
- تسلسل المعلمات.
- التحميل الزائد للمنشئ ، يتيح للمستخدم تحقيق تعدد الأشكال وقت الترجمة.
برنامج
class Figure{ double width; double height; double depth; /* Default Constructor */ Figure(){ width = -1; height = -1; depth = -1; } /* Parameterized constructor when all the dimensions are specified */ Figure(double width,double height,double depth){ this.width = width; this.height = height; this.depth = depth; } /* Parameterized constructor to calculate volume of Cube */ Figure(double length){ width = height = depth = length; } /*Copy Constructor */ Figure(Figure fig){ width = fig.width; height = fig.height; depth = fig.depth; } /* Method to calculate Volume */ double volume(){ return width*height*depth; } } class CalculateVolume{ public static void main(String args[]){ Figure fig = new Figure(); Figure pp = new Figure(2,3,4); Figure cube = new Figure(3); Figure box = new Figure(pp); System.out.println("Volume of default Figure is: "+fig.volume()); System.out.println("Volume of Parallelopiped is: "+pp.volume()); System.out.println("Volume of Cube is: "+cube.volume()); System.out.println("Volume of Box is: "+box.volume()); } }
انتاج |
شرح كود و مخرجات الجافا
هنا في الشكل ، الشكل المُنشئ ()مثقلة بحجج مختلفة من أجل تهيئة متغيرات الحالة لحساب حجم تلك الأشكال الهندسية. في الشكل ، قمنا بتحديد مُنشئ افتراضي واحد لتهيئة جميع متغيرات الحالة مع بعض القيم الافتراضية. ها هي -1. التاليان هما منشئات معلمات حيث يتم تحديد جميع الأبعاد في المنشئ الأول وفي البعد الثاني للمكعب. آخر واحد هو منشئ النسخ كلما احتجنا إلى أي شكل قد يكون مثل أي شخصية موجودة. ثم يمكننا استخدام هذا المُنشئ لتهيئة أبعاد الشكل الذي سيتعين علينا إنشاؤه. وهكذا أثناء إنشاء الكائن ، تميز JVM جميع هذه المُنشئات الزائدة على أساس معايير الدقة المذكورة أعلاه في الخصائص.
واحد أساسي آخر أود أن ألخصهيتم الإعلان عن مُنشئ معلمات وبدون التصريح بالافتراض بشكل صريح إذا كنت تريد إنشاء كائن من هذه الفئة باستخدام مُنشئ افتراضي لتلك الفئة ، فسوف تحصل على خطأ كما هو الحال عندما تُعلن مُنشئ مُعلمات في ذلك الوقت لا توفر JVM مُنشئ افتراضي من خاصتها. يجب عليك تقديم المُنشئ الافتراضي بشكل صريح أثناء توفير مُنشئ ذي معلمات لتجنب أي خطأ في إنشاء مثيل.
ملحوظة: تحويل نوع البيانات التلقائي صحيح لـالزائد منشئ أيضا. ينطبق هذا التحويل على نوع البيانات الأدنى (على سبيل المثال int) إلى نوع البيانات الأعلى (على سبيل المثال مزدوج) وليس العكس (مزدوج إلى int).
بعد ذلك سوف نتعلم كيفية إرجاع كائنات من طرق جافا.
اطلع على المزيد من البرامج التعليمية المفيدة والمبادئ التوجيهية النهائية حول برمجة Java هنا.
تعليقات