در این پست نحوه فراخوانی method رو در جاوا بررسی می کنیم.
تمامی متغیرها در جاوا از یکی دو نوع داده ای Primitive و Non-Primitive میباشند.
Primitive ها در جاوا عبارتند از :
- boolean data type
- byte data type
- char data type
- short data type
- int data type
- long data type
- float data type
- double data type
Non-Primitive ها عبارتند از
- String
- Array
- …
Primitive ها مقدار متغیر را به صورت مستقیم در خود ذخیره می کنند در صورتی که Non-Primitive ها آدرس شی ایجاد شده را در خود دخیره مینمایند.

در جاوا فراخوانی Method ها همیشه به صورت Call-By-Value می باشد. برای نوع داده ای Primitive مقدار آن متغیر کپی می شود و برای نوع داده ای Non-Primitive مقدار Reference آن متغیر کپی می گردد. در زیر با مثالی این نکته نمایان می شود
value of a before calling change method: 10
value of a inside change method: 5
value of a after calling change method: 10
age of Person b before calling changeValueOfReference method: 20
age of Person b inside changeValueOfReference method: 30
age of Person b after calling changeValueOfReference method: 20
age of Person c before calling changeInnerValue method: 20
age of Person c inside changeInnerValue method: 30
age of Person c after calling changeInnerValue method: 30
در تهیه این مطلب از لینک های زیر استفاده شده است:
What’s the difference between primitive and reference types?
Is Java “pass-by-reference” or “pass-by-value”?