أعتقد أن الجميع يعلم أن الكلمة الرئيسية الجديدة لـ Java تقوم بتسهيل كائن. نعم ، إنها أيضًا تخصيص مساحة للذاكرة للكائنات الجديدة.
على سبيل المثال ، في حالة مثل New MyDate (22 ، 7 ، 1964) ، يتطلب إكماله أربعة أجزاء:
واحد. تخصيص مساحة الذاكرة للكائن الجديد وتخزين mydate إلى الكومة.
اثنين. تنفيذ تهيئة العرض
ثلاثة. تنفيذ المنشئ. يتم تمرير معلمات القوس في الطريقة الجديدة إلى المُنشئ ، ويتم نشر قيمة الكائن.
أربعة. يتم تعيين هذا المتغير كمرجع إلى كائن جديد في ذاكرة الكومة
بشروط Layman ، تقوم عمليتك الجديدة في الواقع بإضافة كائن جديد إلى كومة من الذاكرة وتهيئة الكائن الجديد من خلال طريقة مُنشئ وتخزين المرجع إلى الكائن الموجود في المكدس.
هنا لدي حالة يسهل فهمها:
Public Class Pet {protected bean be = th this.b () ؛ public bean b () {return new bean () ؛}} اختبار void العام () {be.setName ("Zhang San") ؛} public void test2 () {system.out.println (be.getname () ؛} public static void main ( people () ؛ pe.test () ؛ pe.test2 () ؛} فئة الوالدين وفئة الطفل. تعيين قيمة للاسم من خلال الاختبار. ستجد قيمة إخراج Test2 أن اختبار الإخراج يتم تعيينه للاسم. لأنه عند تشغيل الطريقة الرئيسية ، سيقوم البرنامج أولاً بتجميع الفئة الأصل وتثبيت كائن BE ، وبالتالي فإن المراجع في الفئة الفرعية هي نفس الكائن ، ولكن إذا تم تعديلها إلى الكود التالي:
اختبار void العام () {bean be = new bean () ؛ be.setName ("Zhang SAN") ؛} اختبار void public () {system.out.println (be.getName ()) ؛} public static void main (string [] args) في الاختبار ، أنا جديد كائن ، والإخراج فارغ ، لأن المراجع التي تخزنها في مكدس الذاكرة مختلف. في عملية الترميز الفعلية ، من الأفضل كتابة كائنات بمزيد من المراجع في الفئة الأصل ، أو وراثة الفئات الفرعية ، أو كتابتها في الوضع الكسول اليمين من Java:
الطبقة العامة danli1class {// 1. لتنفيذ النموذج الفردي للربح ، يجب عليك تعديل طريقة البناء الخاصة به () الخاصة Danli1class () {} // 2. أولاً ، قم بتثبيت مثيل بنفسك الثابتة الخاصة danli1class dan1 = new danli1class () ؛ // 3. للتأكد من أن البرامج الأخرى تصل إلى كائن HUA في هذه الحالة ، تحتاج إلى تحديد طريقة ثابتة ثابتة danli1class danli1 () {return dan1 ؛}} سيؤدي ذلك إلى حفظ استخدام الذاكرة وتمكين إعادة استخدام الكائنات ، فلماذا لا تفعل ذلك؟