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.