PDA

View Full Version : pass by value یا pass by reference



hercules_3d
شنبه 21 مهر 1386, 22:19 عصر
سلام
تا اونجا که من متوجه شدم جاوا به برنامه نویس اجازه نمی ده که خودش انتخاب کنه که یه متغیر به صورت pass by reference به یه متدی ارسال شه یا به صورت pass by value مثلا بر خلاف c++ که توی اون مفهومی به نام اشاره گر وجود داره.
با این وجود وقتی که متغیری که از نوی اولیه هست به یه متد ارسال می شه در واقع داره کپی مقدارش ارسال میشه یه جورایی همون pass by value و وقتی یه متغیری که از نوع آبجکت و یا آرایه به متد ارسال میشه یه کپی از رفرنسش ارسال میشه و خود آبجکت نمی تونه به متد ارسال شه.
توی نوع اول اگه مقدار متغیر درون متد تغیر کنه هیچ تاثیری توی مقدار اصلیش که قبل ار فراخوانی متد بوده نداره که میشه گفت همون pass by value. ولی توی نوع دوم با وجود اینکه خود آرایه با آبجکت به متد ارسال نمیشه و اون چی که به متد فرستاده میشه یه کپی ار رفرنس به آرایه یا آبجکته اگه تغیری توی مقدار یکی از المنت های آرایه ایجاد شه این تغیر روی مقدار اصلی اون المنت قبل از فراخوانی متد به وجود میاد که در واقع یه نوع pass by reference میشه.
حالا اگه چیزایی که من تا اینجا متوجه شدم درست باشه چه طوری میشه پارامتر یه متد از نوع مثلا int باشه و وقتی می خوام اون متد رو فراخوانی کنم آرگومان مورد نظرم رو به صورت pass by reference بفرستم؟
با تشکر

pooyanm
یک شنبه 22 مهر 1386, 01:53 صبح
چه طوری میشه پارامتر یه متد از نوع مثلا int باشه و وقتی می خوام اون متد رو فراخوانی کنم آرگومان مورد نظرم رو به صورت pass by reference بفرستم؟

سلام
برای انواع اولیه راهی نیست تنها راه همون آبجکتها هستند