[CEVAPLANDI] String türündeki değişkenlerin değiştirilemez olması

« Önceki sayfaya geri dön
2
Soran MUSTAFA (Questions: 5, Answers: 0)
23 Eylül 2014 13:07 tarihinde soruldu
Kategori: String Sınıfı
75746 gösterim

Hocam, string türünde bir değişken tanımlayıp, ona farklı değerler atayabiliyoruz. Örneğin; String ad = "Ali"; ad = "Veli"; Burada değiştirilemezden kasıt tam olarak nedir? Değiştirilebilir olması için illa set metoduna mı sahip olması gerekir?

CEVAPLANDI
4
Soran Özcan Acar (Soru: 1, Cevap: 1)
Answered On 23 Eylül 2014 13:45

Burada ad nesneye isaret eden bir göstergectir (referans ya da pointer). Bu degiskene her seferinde ”aaa”; ile yeni bir deger atadiginida, yeni bir String nesnesi olusturmus oluyorsunuz. Bu sekilde ad referans olarak yeni bir nesneye isaret etmektedir. Yeni atama isleminden sonra bu referansin gösterdigi diger String nesne bosta kalmakta ve bir zaman sonra garbage collector tarafindan hafizadan silinmektedir.

String nesneleri degistirilemez ile nesne bünyesinde yer alan karakterlerin nesne olusumundan sonra degistirlemeyecegi ifade edilmektedir. java.lang.String sinifinin koduna bakarsaniz, value[] isminde bir array görürsünüz. Bu array String nesnesini olusturan karakterli ihtiva eder. Bu degisken private dir ve disaridan müdehale edilmesine izin vermez, yani String bünyesindeki harfleri degistirmeniz mümkün degildir. Bunu anca yeni bir String nesnesi olusturarak basarabilirsiniz.