Съдържание:

Как можем да направим класа неизменяем в Java с поле за дата?
Как можем да направим класа неизменяем в Java с поле за дата?

Видео: Как можем да направим класа неизменяем в Java с поле за дата?

Видео: Как можем да направим класа неизменяем в Java с поле за дата?
Видео: Как устроены строки в Java и что с ними делать [GeekBrains] 2024, Април
Anonim

Ще разберем какво всъщност означават тези насоки, като създадем неизменяем клас с променлив обект с поле за дата

  1. Не предоставяйте методи за настройка - методи, които променят полета или обекти посочени от полета .
  2. Направете всичко полета окончателен и частен.
  3. Не позволявайте на подкласовете да отменят методите.

Оттук нататък, как можем да направим клас неизменяем в Java?

Неизменяем клас в Java

  1. Обявете класа като окончателен, за да не може да бъде разширен.
  2. Направете всички полета частни, за да не е разрешен директен достъп.
  3. Не предоставяйте методи за настройка за променливи.
  4. Направете всички променливи полета окончателни, така че стойността да може да бъде присвоена само веднъж.
  5. Инициализирайте всички полета чрез конструктор, изпълняващ дълбоко копиране.

Впоследствие въпросът е каква е ползата от неизменяемия клас в Java? Неизменяем клас означава, че след като обектът е създаден, не можем да променим съдържанието му. В Java , цялата обвивка класове (като Integer, Boolean, Byte, Short) и String клас е неизменна . Можем да създадем свои собствени неизменяем клас също така.

Хората също питат, неизменяем ли е класът Date в Java?

Дата не е неизменна , трябва да направим защитно копие на java . util. Дата поле, докато връща препратка към тази променлива на екземпляра. Нека създадем хипотетичен човек клас който има име и dob като единствените двама членове.

Как можем да направим обект неизменен?

За да направите обекта неизменяем, трябва да направите следните стъпки:

  1. Не използвайте никакви методи, които могат да променят полета на вашия клас. Например не използвайте сетери.
  2. Избягвайте да използвате публични неокончателни полета. Ако вашите полета са публични, тогава трябва да ги декларирате като окончателни и да ги инициализирате в конструктора или директно в реда за декларация.

Препоръчано: