Sadržaj:

Kako možemo učiniti klasu nepromjenjivom u Javi s poljem datuma?
Kako možemo učiniti klasu nepromjenjivom u Javi s poljem datuma?

Video: Kako možemo učiniti klasu nepromjenjivom u Javi s poljem datuma?

Video: Kako možemo učiniti klasu nepromjenjivom u Javi s poljem datuma?
Video: Nevjerojatna snimka: Udar munje u crkvu u Brdovcu #shorts 2024, April
Anonim

Razumjet ćemo šta ove smjernice zapravo znače stvaranjem nepromjenjive klase sa promjenjivim objektom s poljem Date

  1. Nemojte davati metode “setter” – metode koje modificiraju polja ili objekata na koje upućuje polja .
  2. Make sve polja konačni i privatni.
  3. Ne dozvolite podklasama da nadjačaju metode.

Dakle, kako možemo učiniti klasu nepromjenjivom u Javi?

Nepromjenjiva klasa u Javi

  1. Objavite klasu kao konačnu tako da se ne može proširiti.
  2. Neka sva polja budu privatna tako da direktan pristup nije dozvoljen.
  3. Nemojte davati metode postavljanja za varijable.
  4. Neka sva promjenjiva polja budu konačna tako da se njena vrijednost može dodijeliti samo jednom.
  5. Inicijalizirajte sva polja putem konstruktora koji izvodi dubinsko kopiranje.

Nakon toga, postavlja se pitanje koja je upotreba nepromjenjive klase u Javi? Nepromenljiva klasa znači da jednom kada je objekt kreiran, ne možemo promijeniti njegov sadržaj. U Java , sav omot casovi (kao Integer, Boolean, Byte, Short) i String klasa je nepromjenjiv . Možemo kreirati svoje nepromjenjiva klasa takođe.

Ljudi također pitaju, da li je klasa Date nepromjenjiva u Javi?

Datum nije nepromjenjiv , moramo napraviti odbrambenu kopiju java . util. Datum polje dok vraća referencu na ovu varijablu instance. Hajde da stvorimo hipotetičku osobu klasa koja ima ime i dob kao jedina dva člana.

Kako možemo učiniti objekat nepromjenjivim?

Da biste objekt učinili nepromjenjivim, morate učiniti sljedeće korake:

  1. Nemojte koristiti metode koje mogu promijeniti polja vaše klase. Na primjer, nemojte koristiti Setters.
  2. Izbjegavajte korištenje javnih ne-završnih polja. Ako su vaša polja javna onda ih morate deklarisati kao konačna i inicijalizirati ih u konstruktoru ili direktno u liniji deklaracije.

Preporučuje se: