كيف يتم إنشاء الكائنات
The line Vehicle minivan = new Vehicle(); تعلن عن كائن من النوع مركبة.
البيان يفعل أمرين:
يعلن عن متغير يسمى حافلة صغيرة من فئة مركبة.
ينشئ نسخة فعلية من الكائن ويعين مرجعًا للشاحنة الصغيرة باستخدام عامل التشغيل الجديد.
يقوم المشغل الجديد بتخصيص الذاكرة لكائن ما بشكل ديناميكي ويعيد مرجعًا إليه.
المرجع هو، بشكل أو بآخر، عنوان الكائن في الذاكرة المخصصة بواسطة جديد.
ثم يتم تخزين المرجع في متغير.
في Java، يجب تخصيص كافة الكائنات الموجودة في الفصل ديناميكيًا.
يمكن إعادة كتابة خطوتين من البيان لإظهار كل خطوة على حدة.
مركبة صغيرة؛ // أعلن عن مرجع للكائن.
حافلة صغيرة = مركبة جديدة ()؛ // يخصص كائن مركبة.
يشير السطر الأول إلى شاحنة صغيرة كمرجع لكائن من النوع مركبة.
الحافلة الصغيرة هي متغير يمكنه الإشارة إلى كائن، ولكنه ليس كائنًا.
في الوقت الحالي، لا تشير الحافلة الصغيرة إلى كائن.
يقوم السطر التالي بإنشاء كائن مركبة جديد ويعين للشاحنة الصغيرة إشارة إليه.
الآن، تم ربط الميني فان بكائن.
المتغيرات المرجعية والمهمة
تعمل المتغيرات المرجعية للكائن بشكل مختلف عن متغيرات النوع البدائي في عمليات التعيين.
في متغيرات النوع البدائي، يتلقى المتغير الموجود على اليسار نسخة من قيمة المتغير الموجود على اليمين.
في متغيرات مرجع الكائن، يشير المتغير الموجود على اليسار إلى نفس الكائن مثل المتغير الموجود على اليمين.
قد يؤدي هذا إلى نتائج غير متوقعة.
مثال:
مركبة car1 = مركبة جديدة();
مركبة car2 = car1;
يشير car1 وcar2 إلى نفس الكائن.
التغييرات التي يتم إجراؤها من خلال car1 أو car2 تؤثر على نفس الكائن.
متى:
car1.mpg = 26;
System.out.println(car1.mpg);
System.out.println(car2.mpg);
سيكون هناك مخرج 26.
يشير car1 وcar2 إلى نفس الكائن، ولكن لا يتم ربطهما بطرق أخرى.
لا تؤثر التعيينات اللاحقة لـ car2 على car1.
مثال:
مركبة car1 = مركبة جديدة();
مركبة car2 = car1;
مركبة car3 = مركبة جديدة();
car2 = car3;
يشير car2 الآن إلى نفس الكائن مثل car3.
الكائن المشار إليه بواسطة car1 يظل دون تغيير.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3