Inhoudsopgave:

Is het Date-object veranderlijk in Java?
Is het Date-object veranderlijk in Java?

Video: Is het Date-object veranderlijk in Java?

Video: Is het Date-object veranderlijk in Java?
Video: The Fruit of This Looking Will Never Disappoint You 2024, Mei
Anonim

EEN veranderlijk object is gewoon een object die zijn staat kan veranderen na de bouw. Bijvoorbeeld StringBuilder en Datum zijn veranderlijke objecten , terwijl String en Integer onveranderlijk zijn voorwerpen . Een klas kan een hebben veranderlijk object als een veld.

Evenzo, is de klasse Date onveranderlijk in Java?

Datum is niet onveranderlijk , moeten we een defensieve kopie maken van Java . gebruik. Datum veld terwijl een verwijzing naar deze instantievariabele wordt geretourneerd. Laten we een hypothetisch persoon creëren klas die naam en geboortedatum heeft als de enige twee leden.

Vervolgens is de vraag, wat is een onveranderlijk object in Java? Onveranderlijke objecten zijn voorwerpen die veranderen niet. Je maakt ze, dan kun je ze niet veranderen. EEN Onveranderlijk Java-object alle velden moeten interne, privé-eindvelden zijn. Het mag geen setters implementeren. Het heeft een constructor nodig die een waarde aanneemt voor elk afzonderlijk veld.

Zijn objecten veranderbaar in Java?

Onveranderlijke objecten zijn gewoon voorwerpen wiens staat (de voorwerpen gegevens) kunnen na de bouw niet meer wijzigen. Voorbeelden van onveranderlijke objecten van de JDK omvatten String en Integer. veranderlijke objecten velden hebben die kunnen worden gewijzigd, onveranderlijke objecten hebben geen velden die kunnen worden gewijzigd na de object is gecreëerd.

Hoe maak je een object veranderlijk in Java?

Onveranderlijke klasse in Java

  1. Verklaar de klasse als definitief, zodat deze niet kan worden verlengd.
  2. Maak alle velden privé zodat directe toegang niet is toegestaan.
  3. Geef geen setter-methoden voor variabelen.
  4. Maak alle veranderlijke velden definitief, zodat de waarde ervan slechts één keer kan worden toegekend.
  5. Initialiseer alle velden via een constructor die deep copy uitvoert.

Aanbevolen: