ارسال پارامتر از نوع String به متد Call By Reference

+1 رأی

من در آموزش‌ها مطالعه کردم که داده‌هایی از نوع Reference وقتی به متدی پاس می‌شون، مقدار اصلی آن‌ها هم تغییر می‌کنه. اما در کد زیر این اتفاق نمی‌افته. داده‌ها از نوع String هستن، ولی داده‌ی اصلی عوض نمیشه. لطف کنید راهنمایی کنید. ممنون.

public class MainApp {

	public static void badSwap(String var1, String var2) {
		String temp = var1;
		var1 = var2;
		var2 = temp;
	}

	public static void main(String[] args) {
		String a = "a";
		String b = "b";
		
		badSwap(a, b);
	}
}
سوال 10 ماه قبل در تالار کامپیوتر و اینترنت توسط Sina Deuxshiri (390 امتیاز) 86% درصد پذیرش
ویرایش 10 ماه قبل توسط Saeed Zarinfam

1 جواب

+1 رأی
 
بهترین جواب

درست است که نوع داده String جزء انواع reference حساب می شود ولی String ها در جاوا immutable هستند و پس از تعریف مقدار آنها قابل تغییر نیست و رفتاری شبیه انواع داده primitive دارند.

به این سوال هم نگاهی بیاندازید.

جواب 10 ماه قبل توسط Saeed Zarinfam (924 امتیاز)
انتخاب شده در 10 ماه قبل توسط Sina Deuxshiri

سوال های مشابه

+2 رأی
3 جواب 387 بازدید
+1 رأی
1 جواب 272 بازدید
0 رأی
1 جواب 306 بازدید
+1 رأی
1 جواب 659 بازدید
0 رأی
2 جواب 53 بازدید
...