logo

Java'da Değiştirilebilir ve Değiştirilemez

Java nesne yönelimli bir programlama dilidir. Nesneye yönelik bir programlama dili olduğundan tüm yöntem ve mekanizmaları nesnelerin etrafında döner. Bir nesne tabanlı kavram değiştirilebilir ve Java'da değişmez . Java'daki nesneler değiştirilebilir veya değişmezdir; nesnenin nasıl yinelenebileceğine bağlıdır.

Bu bölümde Java'daki değiştirilebilir ve değişmez nesneleri tartışacağız. Ayrıca aralarındaki farkı da göreceğiz.

Değişken Nesneler Nelerdir?

Değişken nesneler, başlatma sonrasında değeri değiştirilebilen nesnelerdir. Nesne oluşturulduktan sonra nesnenin alan ve durumlar gibi değerlerini değiştirebiliriz. Örneğin, java.util.Date , StringBuilder , StringBuffer , vesaire.

Mevcut değiştirilebilir nesnelerde değişiklik yaptığımızda yeni bir nesne oluşturulmayacaktır; bunun yerine mevcut nesnenin değerini değiştirecektir. Bu nesnenin sınıfları, içinde değişiklik yapmak için yöntemler sağlar.

Alıcılar ve Ayarlayıcılar ( get() ve set() yöntemleri) değiştirilebilir nesnelerde mevcuttur. Mutable nesnesi iş parçacığı açısından güvenli olabilir veya olmayabilir.

objektif java

Değişmez Nesneler Nelerdir?

Değişmez nesneler, başlatma sonrasında değeri değiştirilemeyen nesnelerdir. Nesne oluşturulduktan sonra hiçbir şeyi değiştiremeyiz. Örneğin, ilkel nesneler int gibi, uzun , batmadan yüzmek , çift , tüm eski sınıflar, Sarmalayıcı sınıfı , Dize sınıfı , vesaire.

Kısaca değişmez, değiştirilemeyen veya değiştirilemeyen anlamına gelir. Değişmez nesneler oluşturulduktan sonra nesne değerleri ve durumu değiştirilemez.

Değişmez nesneler için Ayarlayıcılar ( set() yöntemi) değil, yalnızca Alıcılar ( get() yöntemi) kullanılabilir.

dize karşılaştırması

Değişken ve değişmez nesneler için sınıfların nasıl oluşturulacağını görelim.

Değişken Bir Sınıf Nasıl Oluşturulur

Değişken bir sınıf oluşturmak için aşağıdaki iki şey gereklidir:

  • Alan değerlerini değiştirme yöntemleri
  • Nesnelerin Alıcıları ve Ayarlayıcıları

Değişken sınıfın aşağıdaki örneğini göz önünde bulundurun:

 public class JtpExample { private String s; JtpExample(String s) { this.s = s; } public String getName() { return s; } public void setName(String coursename) { this.s = coursename; } public static void main(String[] args) { JtpExample obj = new JtpExample('JavaTpoint'); System.out.println(obj.getName()); // Here, we can update the name using the setName method. obj.setName('Java Training'); System.out.println(obj.getName()); } } 

Çıktı:

 JavaTpoint Java Training 

Yukarıdaki örnekte setName yöntemini kullanarak name değerini değiştiriyoruz.

Değişmez Bir Sınıf Nasıl Oluşturulur

Değişmez bir sınıf oluşturmak için aşağıdaki şeyler gereklidir:

  • Uzatılmaması için final olarak bildirilen final sınıfı.
  • Alanlara doğrudan erişimin engellenmesi için tüm alanların özel olması gerekir.
  • Ayarlayıcı Yok
  • Tüm değiştirilebilir alanlar, başlatıldıktan sonra yinelenemeyecekleri şekilde nihai olmalıdır.

Aşağıdaki örneği düşünün:

css altı çizili metin
 public class JtpExample1 { private final String s; JtpExample1(final String s) { this.s = s; } public final String getName() { return s; } public static void main(String[] args) { JtpExample obj = new JtpExample('Core Java Training'); System.out.println(obj.getName()); } } 

Çıktı:

 Core Java Training 

Bu nedenle değişken ve değişmez nesneleri ve sınıfları tartıştık. Aralarındaki farkları tartışalım:

Değiştirilebilir ve Değiştirilemez Nesneler Arasındaki Fark

Aşağıda değiştirilebilir ve değişmez nesneler arasındaki bazı önemli farklar verilmiştir: Java :

  • Değiştirilebilir nesneler, yeni bir nesne eklemeden herhangi bir değere veya duruma değiştirilebilir. Oysa değişmez nesneler oluşturulduktan sonra değerine veya durumuna değiştirilemez. Değişmez nesneler durumunda, nesnenin durumunu değiştirdiğimizde yeni bir nesne yaratılacaktır.
  • Değiştirilebilir nesneler, nesnenin içeriğini değiştirmek için bir yöntem sağlar. Karşılaştırmalı olarak, değişmez nesneler değerleri değiştirmek için herhangi bir yöntem sağlamaz.
  • Değişken nesneler hem ayarlayıcıları hem de alıcıları destekler. Karşılaştırmalı olarak, değişmez nesneler alıcıları değil yalnızca ayarlayıcıları destekler.
  • Mutable nesneler iş parçacığı açısından güvenli olabilir veya olmayabilir, ancak değişmez nesneler varsayılan olarak iş parçacığı açısından güvenlidir.
  • Değişken sınıf örnekleri StringBuffer, Java.util.Date, StringBuilder vb.'dir. Değişmez nesneler ise eski sınıflar, sarmalayıcı sınıflar, String sınıfı vb.'dir.

Aşağıdaki tabloyu göz önünde bulundurun:

Değişken Değişmez
Başlatma sonrasında değiştirilebilir nesnelerin değerini değiştirebiliriz. Değişmez bir nesne başlatıldığında; Değerlerini değiştiremeyiz.
Durum değiştirilebilir. Durum değiştirilemez.
Değişken nesnelerde yeni nesneler oluşmaz. Değişmez nesnelerde, nesnenin değeri değiştiğinde yeni bir nesne oluşur.
Nesneyi değiştirmek için yöntemler sağlar. Nesne değerini değiştirmek için herhangi bir yöntem sağlamaz.
Nesneyle ilgilenmek için get() ve set() yöntemlerini destekler. Nesnenin değerini iletmek için yalnızca get() yöntemini destekler.
Değişken sınıflar iş parçacığı açısından güvenli olabilir veya olmayabilir. Değişmez sınıflar iş parçacığı açısından güvenlidir.
Değişken bir sınıf oluşturmanın temelleri alanları, alıcıları ve ayarlayıcıları değiştirmeye yönelik yöntemlerdir. Değişmez bir sınıf yaratmanın temelleri son sınıf, özel alanlar ve son değiştirilebilir nesnelerdir.

Java'daki Dizeler Neden Değiştirilemez?

Java'da String, hemen hemen her Java programında kullanıldığı için çok özel bir sınıftır. Performansı ve güvenliği artırmak için Değişmez olmasının nedeni budur. Bunu ayrıntılı olarak anlayalım:

Java'da dizeler değişmez kavramı kullanır. Birçok referans değişkenine sahip bir nesnemiz olduğunu varsayalım. Böyle bir senaryoda, eğer bir referans değişkeninin değerini değiştirirsek, bu durum nesnenin tamamını ve onun tüm değerlerini etkileyecektir.

Yukarıdaki nedenlerin dışında, String'in değişmez hale getirilmesinden aşağıdaki nedenler de sorumludur:

Değişmez nesneler çok basittir; senkronizasyona gerek yoktur ve doğası gereği iş parçacığı açısından güvenlidir. Ancak Değişmez nesneler diğer nesneler için iyi yapı taşları oluşturur, bu nedenle onlara özel özen göstermemiz gerekir.

Çoğu Geliştirici, String'i daha sonra değiştirilemeyecek şekilde son nesne yapar.

ağ topolojileri

Çözüm

Java'da değiştirilebilir ve değişmez nesneleri tartıştık, artık hem değiştirilebilir hem de değişmez nesneler ve sınıflar hakkında net bir anlayışa sahibiz. Ayrıca değişken ve değişmez bir sınıfın nasıl oluşturulacağını gördük.

Değişmez nesnelerin, başlatıldıktan sonra değerlerine ve durumlarına değiştirilebileceği ve iş parçacığı açısından güvenli olabileceği veya olmayabileceği belirtilmektedir. Karşılaştırmalı olarak, değişmez nesneler durumlarına ve değerlerine değiştirilemez ve varsayılan iş parçacığı açısından güvenlidir.