Создание неизменяемого класса в Java — пример с final-полями
В Java объект неизменяемого (immutable) класса нельзя изменить после создания. Самый известный пример — класс String: содержимое строки нельзя поменять после её создания.
Кроме того, можно создавать и собственные неизменяемые классы. Вот что для этого нужно сделать:
Примечание
объявить класс
final, чтобы его нельзя было унаследовать;все поля класса должны быть
private, чтобы к ним нельзя было обратиться извне;в классе не должно быть сеттер-методов, изменяющих значения полей;
геттер-методы должны возвращать копию полей;
поля должны инициализироваться только через конструктор.
Пример: программа на Java для создания неизменяемого класса
// class is declared final
final class Immutable {
// private class members
private String name;
private int date;
Immutable(String name, int date) {
// class members are initialized using constructor
this.name = name;
this.date = date;
}
// getter method returns the copy of class members
public String getName() {
return name;
}
public int getDate() {
return date;
}
}
class Main {
public static void main(String[] args) {
// create object of Immutable
Immutable obj = new Immutable("Programiz", 2011);
System.out.println("Name: " + obj.getName());
System.out.println("Date: " + obj.getDate());
}
}
Вывод:
Name: Programiz
Date: 2011
В этом примере мы создали неизменяемый класс с именем Immutable.