+1 امتیاز
قبل در برنامه نویسی توسط (467 امتیاز)
برچسب گذاری دوباره قبل توسط

سلام. بنده با مفهوم ارجاع در جاوا آشنا هستم. اما سوالی که برای من مطرح است و برای تاپیکی ایجاد کردم این است که در آموزش‌های جاوا کاپ (آموزش Java Objects)، برای قسمتی که در مورد ارسال پارامتر به متد‌ها است، از سه مفهوم:

  1. Call by Value
  2. Call by Reference
  3. Call by Pointer

استفاده شده است و در آموزش تاکید کرده است که در جاوا از مفهوم Call by Reference استفاده نکنیم و بجای آن از Call by Pointer استفاده کنیم. چرا؟ مگر در جاوا بجای Pointer از Reference استفاده نمی‌کنند؟ پس چرا در آن آموزش تاکید در استفاده از Call by Pointer است؟

قبل توسط (1.1هزار امتیاز)
لطفا سوال را ویرایش کنید ولینک مطلب آموزشی را هم قرار دهید.

1 پاسخ

+3 امتیاز
قبل توسط (365 امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ

در آن ارائه، تأکید کردم که تفاوت این سه مدل ارسال پارامتر (by value, by reference, by pointer) را خوب بفهمید. این بخش از آن آموزش، مختص زبان جاوا نبوده است و دانشی عمومی درباره این سه مدل ارائه شده است. توجه کنید که عنوان این سه مدل شفاف و گویا نیست. مثلاً مدلی که در زبان ++C به آن Call by Reference میگویند، اصلاً در جاوا وجود ندارد. در مقابل مدلی که در جاوا (معمولاً) به آن Call by Reference میگویند، در ++C به عنوان Call by Pointer شناخته میشود. بنابراین اگر کسی از شما بپرسد Call by Reference یعنی چه، باید سؤالش را دقیقتر کند و بگوید منظورش در کدام زبان است.

آن چه در آن ارائه تأکید شده است، این است که در بند «نام» این سه مدل نباشید و مفهوم را درک کنید. فکر میکنم همان جا توضیح دادم که به نظر من، بهترین عنوان برای مدلی که جاوا برای ارسال اشیاء به متدها پیاده کرده، نه call by value است و نه call by reference ، بلکه call by value of referenece است.

خلاصه منظور من این بوده که مواظب باشید مدل جاوا را - که خیلیها با تساهل به آن call by reference میگویند- با مفهوم call by reference که زبانهایی مثل ++C و #C دارند، اشتباه نگیرید.

سوالات مشابه

+1 امتیاز
1 پاسخ 513 بازدید
+2 امتیاز
3 پاسخ 3.3هزار بازدید
+1 امتیاز
1 پاسخ 698 بازدید
0 امتیاز
2 پاسخ 938 بازدید
+2 امتیاز
1 پاسخ 2.3هزار بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط Mahkh (130 امتیاز)
+2 امتیاز
1 پاسخ 976 بازدید
+1 امتیاز
1 پاسخ 623 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط Reza.R (851 امتیاز)
...