OCA Java imtahan mövzuları

Mutability and Chaining

String Chaining

Eyni bir String dəyişəni üçün bir neçə metodu zəncirvari şəkildə bir sətirdə çağırmaq mümkündür.

String result = "AniMaL    ".trim().toLowerCase().replace('a', 'A');
System.out.println(result);   // AnimAl

Yuxarıda birinci sətirdə 4 obyekt yaradılır.

String immutable olduğundan aşağıdakı nümunədə a b referanslarının bir-biri ilə əlaqəsi yoxdur, ona görə də çap edilərkən fərqli nəticələr alınır. Amma buna bənzər nümunəni StringBuilder üçün tətbiq etdikdə fərqli nəticə alacağıq. Bir qədər aşağıda buna baxacağıq.

String a = "abc";
String b = a.toUpperCase();
b = b.replace("B", "2").replace('C', '3');
System.out.println(a);   // abc
System.out.println(b);   // A23

 

StringBuilder Chaining

Biz String metodlarını zəncirvari şəkildə çağırdıqda (chaining) nəticə olaraq geriyə yeni String qaytarır. Amma StringBuilder chaining olunan referansın öz dəyərini dəyişir və geriyə həmin referansı qaytarır, yəni yeni StringBuilder obyekti yaradılmır.

StringBuilder a = new StringBuilder("abc");
StringBuilder b = a.append("de");
b = b.append("f").append('g');
System.out.println(a);   // abcdefg
System.out.println(b);   // abcdefg

Burada cəmi bir StringBuilder obyekti var, a b referansları hər ikisi eyni obyektə işarə edirlər (refer).

 

[topics lang=az]

About the author

Mushfiq Mammadov

Leave a Comment


The reCAPTCHA verification period has expired. Please reload the page.

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.