+2 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)

در جاوا گفته می شود فلان کلاس immutable است برای مثال String یا Integer این کلاس ها چه خصوصیتی نسبت به سایر کلاس ها که immutable نیستند دارند؟

1 پاسخ

+2 امتیاز
قبل توسط (1.1هزار امتیاز)

کلاس های immutable، کلاس هایی هستند که مقادیر فیلدهای داخلی آنها به هیچ وجه قابل تغییر نیستند، و متدهای آنها نیز در صورتی که بخواهند تغییری در مقادیر فیلدهای داخلی شئ داشته باشند، این تغییر اتفاق نمی افتد و بجای آن یک شئ تغییر کرده از همان کلاس توسط متد برگردانده می شود، برای مثال کد زیر را نگاه کنید:

        String a = "java";
        a.concat("-"); 
        System.out.println(a);//java
        String b = a.concat("-");
        System.out.println(b);//java-

چون کلاس String یک کلاس immutable است وقتی متغییر a تعریف می شود دیگر نمی توان مقدار آن را تغییر داد و متد concat نیز یک String جدید بعنوان خروجی بر می گرداند.

قبل توسط (1.1هزار امتیاز)
+1
بله دقیقا.
قبل توسط (365 امتیاز)
+1
سلام. البته عبارت «مقادیر فیلدهای داخلی آنها به هیچ وجه قابل تغییر نیستند» دقیق نیست. در واقع این مقادیر به صورت عادی قابل تغییر نیستند، ولی با کمک رفلکشن قابل تغییر هستند. :-)

سوالات مشابه

+1 امتیاز
1 پاسخ 1.1هزار بازدید
+1 امتیاز
2 پاسخ 2.7هزار بازدید
+2 امتیاز
2 پاسخ 2.2هزار بازدید
+1 امتیاز
0 پاسخ 453 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط java_ (778 امتیاز)
0 امتیاز
0 پاسخ 78 بازدید
+1 امتیاز
1 پاسخ 390 بازدید
+1 امتیاز
1 پاسخ 177 بازدید
0 امتیاز
0 پاسخ 674 بازدید
...