INHOUDSOPGAWE:

Hoe kan ons klas onveranderlik maak in Java met datumveld?
Hoe kan ons klas onveranderlik maak in Java met datumveld?

Video: Hoe kan ons klas onveranderlik maak in Java met datumveld?

Video: Hoe kan ons klas onveranderlik maak in Java met datumveld?
Video: How to Create Custom Immutable Class with mutable object references in Java 2024, November
Anonim

Ons sal verstaan wat hierdie riglyne eintlik beteken deur die skep van 'n onveranderlike klas met veranderlike voorwerp met Datum veld

  1. Moenie "setter"-metodes verskaf nie - metodes wat wysig velde of voorwerpe verwys deur velde .
  2. Maak almal velde finaal en privaat.
  3. Moenie toelaat dat subklasse metodes ignoreer nie.

Hiervan, hoe kan ons 'n klas onveranderlik maak 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.

Die vraag is dan, wat is die gebruik van onveranderlike klas in Java? Onveranderlike klas beteken dat sodra 'n voorwerp geskep is, ons nie die inhoud daarvan kan verander nie. In Java , al die omhulsel klasse (soos Heelgetal, Boole, Byte, Kort) en String klas is onveranderlik . Ons kan ons eie skep onveranderlike klas ook.

Mense vra ook, is Date-klas 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.

Hoe kan ons 'n voorwerp onveranderlik maak?

Om voorwerp onveranderlik te maak, moet jy hierdie stappe doen:

  1. Moenie enige metodes gebruik wat velde van jou klas kan verander nie. Gebruik byvoorbeeld nie Setters nie.
  2. Vermy die gebruik van publieke nie-finale velde. As jou velde publiek is, moet jy dit as finaal verklaar en dit in constructor of direk in die verklaring lyn inisialiseer.

Aanbeveel: