logo

Változtatható és megváltoztathatatlan Java nyelven

A Java egy objektum-orientált programozási nyelv. Mivel ez egy objektum-orientált programozási nyelv, minden módszere és mechanizmusa az objektumok körül forog. Az egyik objektum alapú fogalom változékony és megváltoztathatatlan Java-ban . A Java-ban lévő objektumok változtathatók vagy megváltoztathatatlanok; attól függ, hogy az objektum hogyan iterálható.

Ebben a részben a Java változó és megváltoztathatatlan objektumairól fogunk beszélni. Továbbá látni fogjuk a különbséget köztük.

Mik azok a változó objektumok

A módosítható objektumok olyan objektumok, amelyek értéke megváltoztatható inicializálás után. Az objektum létrehozása után módosíthatjuk az objektum értékeit, például a mezőt és az állapotokat. Például, java.util.Date , StringBuilder , StringBuffer stb.

Amikor megváltoztattuk a meglévő módosítható objektumokat, nem jön létre új objektum; ehelyett megváltoztatja a meglévő objektum értékét. Ezek az objektumok osztályai módszereket biztosítanak az objektum módosítására.

A Getters and Setters ( get() és set() metódusok ) változó objektumokban állnak rendelkezésre. A Mutable objektum lehet szálbiztos vagy nem.

húrépítő

Mik azok a megváltoztathatatlan tárgyak

A megváltoztathatatlan objektumok olyan objektumok, amelyek értéke nem módosítható inicializálás után. Az objektum létrehozása után semmit nem tudunk megváltoztatni. Például, primitív tárgyak mint például int, hosszú , úszó , kettős , minden örökölt osztály, Csomagoló osztály , Vonós osztály stb.

Dióhéjban a megváltoztathatatlan azt jelenti, hogy nem vagy megváltoztathatatlan. A megváltoztathatatlan objektumok létrehozása után az objektum értékei és állapota nem módosítható.

Csak a Getterek ( get() metódus) érhetők el, a setterek ( set() metódus) nem változtatható objektumokhoz.

Nézzük meg, hogyan lehet osztályokat létrehozni változó és megváltoztathatatlan objektumokhoz.

Hogyan hozzunk létre változó osztályt

A következő két dolog elengedhetetlen egy változó osztály létrehozásához:

  • A mezőértékek módosításának módjai
  • Az objektumok getterei és szetterei

Tekintsük a változó osztály alábbi példáját:

római számok 1-100
 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()); } } 

Kimenet:

 JavaTpoint Java Training 

A fenti példából a setName metódussal módosítjuk a névértéket.

Hogyan hozzunk létre egy megváltoztathatatlan osztályt

A következő dolgok elengedhetetlenek egy megváltoztathatatlan osztály létrehozásához:

  • Végleges osztály, amelyet véglegesnek nyilvánítanak, hogy ne lehessen meghosszabbítani.
  • Minden mezőnek privátnak kell lennie, hogy a mezőkhöz való közvetlen hozzáférés blokkolva legyen.
  • Nincsenek szetterek
  • Minden módosítható mezőnek véglegesnek kell lennie, hogy inicializálás után ne lehessen ismételni.

Tekintsük az alábbi példát:

 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()); } } 

Kimenet:

 Core Java Training 

Ezért tárgyaltuk a változtatható és megváltoztathatatlan objektumokat és osztályokat. Beszéljük meg a köztük lévő különbségeket:

Különbség a változtatható és megváltoztathatatlan objektumok között

Az alábbiakban bemutatunk néhány alapvető különbséget a változtatható és megváltoztathatatlan objektumok között Jáva :

Diana Ankudinova
  • A módosítható objektumok bármilyen értékre vagy állapotra megváltoztathatók új objektum hozzáadása nélkül. Míg a megváltoztathatatlan objektumok nem változtathatók meg értékükre vagy állapotukra a létrehozásuk után. Módosíthatatlan objektumok esetén, amikor megváltoztatjuk az objektum állapotát, egy új objektum jön létre.
  • A változtatható objektumok módszert biztosítanak az objektum tartalmának megváltoztatására. Összehasonlításképpen, a megváltoztathatatlan objektumok nem biztosítanak semmilyen módszert az értékek megváltoztatására.
  • A változtatható objektumok támogatják a settereket és a gettereket egyaránt. Összehasonlításképpen, a megváltoztathatatlan objektumok csak a settereket támogatják, a gettereket nem.
  • A Mutable objektumok szálbiztosak vagy nem, de a megváltoztathatatlan objektumok alapértelmezés szerint szálbiztosak.
  • A módosítható osztályok példái a StringBuffer, Java.util.Date, StringBuilder stb. Míg a megváltoztathatatlan objektumok örökölt osztályok, wrapper osztályok, String osztály stb.

Vegye figyelembe az alábbi táblázatot:

Változékony Változhatatlan
A módosítható objektumok értékét inicializálás után módosíthatjuk. Ha egy megváltoztathatatlan objektumot elindítanak; Értékein nem tudunk változtatni.
Az állapot megváltoztatható. Az állapotot nem lehet megváltoztatni.
A változtatható objektumokban nem képződnek új objektumok. A megváltoztathatatlan objektumokban új objektum jön létre, amikor az objektum értéke megváltozik.
Módszereket biztosít az objektum megváltoztatásához. Nem biztosít módszert az objektumérték megváltoztatására.
Támogatja a get() és set() metódusokat az objektummal való dela-hoz. Csak a get() metódust támogatja az objektum értékének átadására.
A változtatható osztályok szálbiztosak vagy nem. A megváltoztathatatlan osztályok szálbiztosak.
A változtatható osztály létrehozásának alapvető elemei a mezők, a getterek és a setterek módosítására szolgáló módszerek. A megváltoztathatatlan osztály létrehozásához elengedhetetlenek a végső osztály, a privát mezők, az utolsó módosítható objektumok.

Miért változtathatatlanok a karakterláncok a Java-ban?

A String a Java nyelvben egy nagyon speciális osztály, mivel szinte minden Java programban használatos. Ezért változtathatatlan a teljesítmény és a biztonság fokozása érdekében. Értsük meg részletesen:

A Java nyelven a karakterláncok a literálok fogalmát használják. Tegyük fel, hogy van egy objektumunk, amelynek sok referenciaváltozója van. Egy ilyen forgatókönyvben, ha megváltoztatjuk egy referenciaváltozó értékét, az a teljes objektumra és annak minden értékére hatással lesz.

tavaszi felhő

A fenti okokon kívül a következő okok is felelősek a karakterlánc megváltoztathatatlanságáért:

A megváltoztathatatlan tárgyak nagyon egyszerűek; nincs szükség szinkronizálásra, és eredendően szálbiztosak. De a megváltoztathatatlan tárgyak jó építőkövei más tárgyaknak, ezért különös gondot kell fordítanunk rájuk.

A legtöbb fejlesztő a karakterláncot teszi végső objektummá, hogy később ne lehessen módosítani.

Következtetés

Megbeszéltük a változtatható és megváltoztathatatlan objektumokat Java-ban, most már világosan megértjük mind a változtatható, mind a megváltoztathatatlan objektumokat és osztályokat. Továbbá láttuk, hogyan hozhatunk létre egy változtatható és megváltoztathatatlan osztályt.

Megjegyzendő, hogy a megváltoztathatatlan objektumok értékükre és állapotukra változtathatók, miután kezdeményezték, és lehet, hogy szálbiztosak vagy nem. Összehasonlításképpen, a megváltoztathatatlan objektumok nem módosíthatók az állapotukra és értékükre, valamint az alapértelmezett szálbiztos állapotukra.