Оглавление:

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

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

Видео: Как мы можем сделать класс неизменяемым в Java с полем даты?
Видео: Урок Java 323: Immutable классы 2024, Апрель
Anonim

Мы поймем, что на самом деле означают эти рекомендации, создав неизменный класс с изменяемым объектом с полем Date

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

Итак, как мы можем сделать класс неизменяемым в Java?

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

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

Следовательно, возникает вопрос, какова польза неизменяемого класса в Java? Неизменяемый класс означает, что после создания объекта мы не можем изменить его содержимое. В Джава , вся обертка классы (например, Integer, Boolean, Byte, Short) и String класс является неизменный . Мы можем создать свой собственный неизменный класс также.

Люди также спрашивают, неизменен ли класс Date в Java?

Дата не является неизменный , нам нужно сделать защитную копию Джава . утилита Дата при возврате ссылки на эту переменную экземпляра. Создадим гипотетического человека класс у которого есть только два члена name и dob.

Как сделать объект неизменным?

Чтобы сделать объект неизменяемым, необходимо выполнить следующие действия:

  1. Не используйте какие-либо методы, которые могут изменить поля вашего класса. Например, не используйте сеттеры.
  2. Избегайте использования общедоступных неокончательных полей. Если ваши поля являются общедоступными, вы должны объявить их окончательными и инициализировать их в конструкторе или непосредственно в строке объявления.

Рекомендуемые: