ارسال پارامتر از نوع 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);
	}
}
سوال 7 ماه قبل در تالار کامپیوتر و اینترنت توسط ANONYMOUS (349 امتیاز) 88% درصد پذیرش
ویرایش 7 ماه قبل توسط Saeed Zarinfam

1 جواب

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

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

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

جواب 7 ماه قبل توسط Saeed Zarinfam (736 امتیاز)
انتخاب شده در 7 ماه قبل توسط ANONYMOUS

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

+2 رأی
3 جواب 336 بازدید
+1 رأی
1 جواب 232 بازدید
0 رأی
1 جواب 278 بازدید
+1 رأی
1 جواب 610 بازدید
0 رأی
0 جواب 60 بازدید
...