Hogyan tehetjük megváltoztathatatlanná az osztályt Java-ban dátummezővel?
Hogyan tehetjük megváltoztathatatlanná az osztályt Java-ban dátummezővel?
Anonim

Meg fogjuk érteni, mit jelentenek ezek az irányelvek, ha létrehozunk egy megváltoztathatatlan osztályt, változó objektumokkal, dátum mezővel

  1. Ne adjon meg „beállító” metódusokat – olyan módszereket, amelyek módosítanak mezőket vagy tárgyakat által hivatkozott mezőket .
  2. Készíts összes mezőket végső és privát.
  3. Ne engedje, hogy az alosztályok felülírják a metódusokat.

Ebből kiindulva hogyan tehetünk egy osztályt megváltoztathatatlanná a Java nyelven?

Megváltoztathatatlan osztály Java nyelven

  1. Az osztályt véglegesnek kell nyilvánítani, hogy ne lehessen meghosszabbítani.
  2. Minden mezőt tegye priváttá, hogy a közvetlen hozzáférés ne legyen engedélyezett.
  3. Ne adjon meg beállító metódusokat a változókhoz.
  4. Tegye véglegessé az összes módosítható mezőt, hogy az értékét csak egyszer lehessen hozzárendelni.
  5. Inicializálja az összes mezőt egy mélymásolást végrehajtó konstruktorral.

Ezt követően a kérdés az, hogy mi a haszna a változtathatatlan osztálynak a Java-ban? Változatlan osztály azt jelenti, hogy egy objektum létrehozása után nem tudjuk megváltoztatni a tartalmát. Ban ben Jáva , az összes csomagolóanyag osztályok (mint Integer, Boolean, Byte, Short) és String osztály van változhatatlan . Létrehozhatjuk a sajátunkat változhatatlan osztály is.

Az emberek azt is kérdezik, hogy a Date osztály megváltoztathatatlan a Java-ban?

Dátum nem változhatatlan , védekező másolatot kell készítenünk Jáva . util. Dátum mezőben, miközben hivatkozást ad vissza erre a példányváltozóra. Hozzunk létre egy hipotetikus személyt osztály amelynek a neve és a dob az egyetlen két tagja.

Hogyan tehetünk egy tárgyat megváltoztathatatlanná?

Az objektum megváltoztathatatlanná tételéhez az alábbi lépéseket kell végrehajtania:

  1. Ne használjon olyan metódusokat, amelyek megváltoztathatják az osztály mezőit. Például ne használd a szettereket.
  2. Kerülje a nyilvános, nem végleges mezők használatát. Ha a mezői nyilvánosak, akkor véglegesnek kell nyilvánítania őket, és inicializálnia kell őket a konstruktorban vagy közvetlenül a deklarációs sorban.

Ajánlott: