+1 امتیاز
قبل در برنامه نویسی توسط (467 امتیاز)
ویرایش شده قبل توسط

من در آموزش‌ها مطالعه کردم که داده‌هایی از نوع 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 پاسخ

+1 امتیاز
قبل توسط (1.1هزار امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ

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

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

سوالات مشابه

+2 امتیاز
3 پاسخ 3.2هزار بازدید
+1 امتیاز
1 پاسخ 787 بازدید
+1 امتیاز
1 پاسخ 2.2هزار بازدید
0 امتیاز
1 پاسخ 1.3هزار بازدید
+1 امتیاز
1 پاسخ 2.9هزار بازدید
0 امتیاز
4 پاسخ 1.8هزار بازدید
سوال شده 7 سال قبل در برنامه نویسی توسط ali-nb (10 امتیاز)
+1 امتیاز
1 پاسخ 5.2هزار بازدید
...