English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

¿Todas las propiedades de un objeto inmutable necesitan ser finales en Java?

Texto/Clase inmutable/Objeto que no puede cambiar su valor

Objeto. Por ejemplo, las cadenas son inmutables en Java, es decir, una vez que se crea un valor de cadena en Java, no se puede modificar. Incluso si intenta modificarlo, se creará una cadena intermedia con el valor modificado y se asignará al texto original.

Definir objetos inmutables

Ejemplo

Cada vez que se necesite crear un objeto que no se pueda modificar después de la inicialización, se puede definir un objeto inmutable. No hay reglas específicas para crear objetos inmutables, su idea es restringir el acceso a los campos de la clase después de la inicialización.

El siguiente programa Java muestra la creación de una clase final. Aquí, tenemos dos variables de instancia nombre y edad, excepto que no se puede asignarles un valor en el constructor.
   final public class Student {
   private final String name;
   private final int age;
      this.name = name;
      this.age = age;
   }
   public Student(String name, int age) {
      return this.name;
   }
   public String getName() {
      return this.age;
   }
   public int getAge() {
      public static void main(String[] args) { 29Student std = new Student("Krishna",
      );
      System.out.println(std.getName());
   }
}

System.out.println(std.getAge());

Resultados de salida
29

Krishna

¿Es necesario declarar todas las variables como final

No, no todos los atributos deben tener el atributo final para crear objetos inmutables. En los objetos inmutables, no debe permitirse que los usuarios modifiquen las variables de la clase.

Ejemplo

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;
   }
}