Inhoudsopgave:

Hoe kunnen we klasse onveranderlijk maken in Java met datumveld?
Hoe kunnen we klasse onveranderlijk maken in Java met datumveld?

Video: Hoe kunnen we klasse onveranderlijk maken in Java met datumveld?

Video: Hoe kunnen we klasse onveranderlijk maken in Java met datumveld?
Video: How to Create Custom Immutable Class with mutable object references in Java 2024, April
Anonim

We zullen begrijpen wat deze richtlijnen eigenlijk betekenen door een onveranderlijke klasse te maken met een veranderlijk object met het veld Datum

  1. Geef geen "setter"-methoden - methoden die wijzigen velden of voorwerpen waarnaar wordt verwezen door velden .
  2. Maken alle velden definitief en privé.
  3. Sta niet toe dat subklassen methoden overschrijven.

Hiervan, hoe kunnen we een klasse onveranderlijk maken 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.

Vervolgens is de vraag, wat is het gebruik van onveranderlijke klasse in Java? onveranderlijke klasse betekent dat als een object eenmaal is gemaakt, we de inhoud ervan niet kunnen wijzigen. In Java , de hele verpakking klassen (zoals Integer, Boolean, Byte, Short) en String klas is onveranderlijk . We kunnen onze eigen maken onveranderlijke klasse ook.

Mensen vragen zich ook af: is de Date-klasse 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.

Hoe kunnen we een object onveranderlijk maken?

Om het object onveranderlijk te maken, moet u deze stappen uitvoeren:

  1. Gebruik geen methodes die velden van je klasse kunnen veranderen. Gebruik bijvoorbeeld geen Setters.
  2. Vermijd het gebruik van openbare niet-finale velden. Als uw velden openbaar zijn, moet u ze als definitief declareren en ze initialiseren in de constructor of rechtstreeks in de declaratieregel.

Aanbevolen: