English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Неизменяемые классы/объекты - это классы/объекты, чьи значения нельзя изменить. Например, строки в Java являются неизменяемыми, то есть, как только строка создается в Java, изменить ее невозможно. Даже если вы пытаетесь изменить, будет создан промежуточный строковый объект с измененным значением, и он будет назначен оригинальному тексту.
Каждый раз, когда нужно создать объект, который после инициализации нельзя изменить, можно определить неизменяемый объект. Нет особых правил для создания неизменяемых объектов, идея заключается в ограничении доступа к полям класса после инициализации.
Следующий Java-программа демонстрирует создание final класса. Здесь у нас есть два экземплярных переменных name и возраст, кроме того, что им нельзя присваивать значения в конструкторе.
final public class Student { private final String name; private final int age; public Student(String name, int age) { this.name = name; this.age = age; {} public String getName() { return this.name; {} public int getAge() { return this.age; {} public static void main(String[] args) { Student std = new Student("Krishna", 29); System.out.println(std.getName()); System.out.println(std.getAge()); {} {}
Результат вывода
Krishna 29
Нет, не все свойства должны быть finals, чтобы создать неизменяемый объект. В неизменяемых объектах вы не должны позволять пользователям изменять переменные класса.
Вы можете изменить переменные, установив их в частные и не предоставляя методы установки, чтобы сделать это.
public class Sample { String name; int age; public Sample() { this.name = name; this.age = age; {} public String getName() { return this.name; {} public int getAge() { return this.age; {} {}