→ Lecture 7 & 8 · كل المراحل
المرحلة 13 · شرائح 39، 40، 41

مرجعان، هل عندنا كائنان؟

References & Object Assignment

01 / افهم الفكرة

References & Object Assignment

فرق مهم

متغير int يحمل قيمة عددية، بينما متغير نوعه Employee يحمل Reference إلى كائن. الرسم الذي يشبه العنوان في الشريحة نموذج توضيحي، وليس عنوان ذاكرة تتعامل معه مباشرة في Java.

ماذا تفعل e2 = e1: تنسخ قيمة المرجع، ولا تنسخ بيانات الكائن إلى كائن جديد. بعدها يصبح e1 وe2 طريقين للوصول إلى الكائن نفسه.

أثر التعديل

عندما تنفذ e2.setName("Ali") يتغير الكائن المشترك. لهذا تُظهر e1.writeOutput() الاسم Ali أيضًا، رغم أن التعديل كُتب عبر e2.

للمقارنة فقط

عند استخدام new مرة أخرى لـe2 نحصل على كائن مستقل. تساوي القيم الابتدائية لا يعني أن الكائنين هما الكائن نفسه.

1 / 4