Шаг 27.
Язык программирования Java.
Неизменяемые поля экземпляра

На этом шаге мы поговорим про неизменяемые поля экземпляра

Поля экземпляра можно объявить с помощью ключевого слова final. Такое поле должно инициализироваться при создании объектов, то есть необходимо гарантировать, что значение поля будет установлено по завершении каждого конструктора. После этого его значение изменить уже нельзя. Например, поле name из класса Employee можно объявить неизменяемым, поскольку после создания объекта оно уже не изменяется, а метода setName() для этого не существует.

class Employee {
	...
	private final String name;
}

Модификатор final удобно применять при объявлении полей простых типов или полей, типы которых являются неизменяемыми классами. Неизменяемым называется такой класс, методы которого не позволяют изменить состояние объекта. Например, неизменяемым является класс String. Если класс изменяется, то ключевое слово final может стать источником недоразумений. Рассмотрим следующий фрагмент кода:

private final Date hireDay;

Этот фрагмент кода говорит, что переменная hireDay не изменяется после создания объекта. Но это не означает, что состояние объекта, на который ссылается переменная, остается неизменным. В любой момент времени можно вызвать метод setTime().

На следующем шаге мы поговорим про статические поля и методы

Предыдущий шаг Содержание Следующий шаг