ارسال پارامتر از نوع 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);
	}
}
سوال 1 سال قبل در تالار کامپیوتر و اینترنت توسط Sina Deuxshiri (414 امتیاز) 85% درصد پذیرش
ویرایش 1 سال قبل توسط Saeed Zarinfam

1 جواب

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

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

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

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

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

+2 رأی
3 جواب 430 بازدید
+1 رأی
1 جواب 327 بازدید
0 رأی
1 جواب 341 بازدید
+1 رأی
1 جواب 715 بازدید
0 رأی
2 جواب 116 بازدید
...