→ Lecture 7 & 8 · كل المراحل
المرحلة 15 · شرائح 42، 44

ننسخ المرجع، ونصل لنفس الكائن

Object Arguments Are Passed by Value

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

Object Arguments Are Passed by Value

نفس القاعدة

Java تستخدم Pass-by-Value مع Objects أيضًا. القيمة المنسوخة هنا هي Reference إلى الكائن، وليست نسخة من كل حقوله.

لماذا يتغير الراتب

عند doubleSalary(e1) يحصل Parameter e على نسخة من المرجع. يشير e وe1 إلى الكائن نفسه؛ لذلك e.setSalary(s * 2) تغيّر الكائن الذي تراه main.

تصحيح عنوان الشريحة 44: عنوان Call-by-Reference غير دقيق لوصف Java. المثال يوضح تعديل كائن عبر Reference منسوخ بالقيمة، ولا يعني أن متغير e1 نفسه مُرّر بالمرجع.

جرّب الفرق

إذا أعدنا إسناد e داخل Method إلى new Employee، فسيتغير Parameter المحلي فقط. e1 في main يظل يشير إلى الكائن الأصلي. هذا البديل توضيح إضافي يبيّن الفرق، وليس كودًا من الشريحة.

1 / 4