INHOUDSOPGAWE:

Is Date-objek veranderbaar in Java?
Is Date-objek veranderbaar in Java?

Video: Is Date-objek veranderbaar in Java?

Video: Is Date-objek veranderbaar in Java?
Video: Daring Love | (Full HD) | Varinder Brar | Sukh Sanghera | New Punjabi Songs 2019 | Jass Records 2024, November
Anonim

A veranderlike voorwerp is bloot 'n voorwerp wat sy toestand na konstruksie kan verander. Byvoorbeeld, StringBuilder en Datum is veranderlike voorwerpe , terwyl String en Heelgetal onveranderlik is voorwerpe . 'n Klas kan 'n veranderlike voorwerp as 'n veld.

Is Date-klas eweneens onveranderlik in Java?

Datum is nie onveranderlik , moet ons 'n defensiewe kopie van maak java . gebruik. Datum veld terwyl 'n verwysing na hierdie instansie veranderlike teruggestuur word. Kom ons skep 'n hipotetiese persoon klas wat naam en dob het as die enigste twee lede.

Die vraag is dan, wat is onveranderlike voorwerp in Java? Onveranderlike voorwerpe is voorwerpe wat nie verander nie. Jy maak hulle, dan kan jy hulle nie verander nie. A Java onveranderlike voorwerp moet al sy velde interne, private finale velde wees. Dit moet geen opstellers implementeer nie. Dit benodig 'n konstruktor wat 'n waarde vir elke enkele veld neem.

Hiervan, is voorwerpe veranderbaar in Java?

Onveranderlike voorwerpe is eenvoudig voorwerpe wie se staat (die voorwerpe data) kan nie verander na konstruksie nie. Voorbeelde van onveranderlike voorwerpe van die JDK sluit string en heelgetal in. Veranderbare voorwerpe het velde wat verander kan word, onveranderlike voorwerpe het geen velde wat verander kan word na die voorwerp geskep word.

Hoe maak jy 'n voorwerp veranderbaar in Java?

Onveranderlike klas in Java

  1. Verklaar die klas as finaal sodat dit nie verleng kan word nie.
  2. Maak alle velde privaat sodat direkte toegang nie toegelaat word nie.
  3. Moenie stelmetodes vir veranderlikes verskaf nie.
  4. Maak alle veranderbare velde finaal sodat die waarde daarvan slegs een keer toegeken kan word.
  5. Inisialiseer al die velde via 'n konstruktor wat diepkopie uitvoer.

Aanbeveel: