Satura rādītājs:

Kā mēs varam padarīt klasi nemainīgu Java ar datuma lauku?
Kā mēs varam padarīt klasi nemainīgu Java ar datuma lauku?

Video: Kā mēs varam padarīt klasi nemainīgu Java ar datuma lauku?

Video: Kā mēs varam padarīt klasi nemainīgu Java ar datuma lauku?
Video: How to Create Custom Immutable Class with mutable object references in Java 2024, Novembris
Anonim

Mēs sapratīsim, ko šīs vadlīnijas patiesībā nozīmē, izveidojot nemainīgu klasi ar mainīgu objektu ar datumu lauku

  1. Nenodrošiniet “iestatīšanas” metodes - metodes, kas modificē lauki vai objektus uz kuru atsaucās lauki .
  2. Veidot visi lauki galīgs un privāts.
  3. Neļaut apakšklasēm ignorēt metodes.

Kā mēs varam padarīt klasi nemainīgu Java?

Nemainīga klase Java valodā

  1. Pasludiniet klasi kā galīgu, lai to nevarētu pagarināt.
  2. Padariet visus laukus privātus, lai tieša piekļuve nebūtu atļauta.
  3. Nenodrošiniet mainīgo lielumu noteikšanas metodes.
  4. Padariet visus mainīgos laukus galīgus, lai to vērtību varētu piešķirt tikai vienu reizi.
  5. Inicializējiet visus laukus, izmantojot konstruktoru, kas veic dziļo kopēšanu.

Pēc tam rodas jautājums, kāda ir nemainīgas klases izmantošana Java? Nemainīga klase nozīmē, ka pēc objekta izveides mēs nevaram mainīt tā saturu. In Java , viss iesaiņojums klases (piemēram, vesels skaitlis, Būla, baits, īss) un virkne klasē ir nemainīgs . Mēs varam izveidot savu nemainīga klase arī.

Cilvēki arī jautā, vai datuma klase Java ir nemainīga?

Datums nav nemainīgs , mums ir jāizveido aizsardzības kopija java . util. Datums laukā, vienlaikus atgriežot atsauci uz šo gadījumu mainīgo. Izveidosim hipotētisku cilvēku klasē kurā ir divi vienīgie locekļi.

Kā mēs varam padarīt objektu nemainīgu?

Lai objektu padarītu nemainīgu, jums jāveic šādas darbības:

  1. Neizmantojiet metodes, kas var mainīt jūsu klases laukus. Piemēram, neizmantojiet Setters.
  2. Neizmantojiet publiskus laukus, kas nav galīgi. Ja jūsu lauki ir publiski, tie ir jāpaziņo kā galīgi un jāinicializē konstruktorā vai tieši deklarācijas rindā.

Ieteicams: