49. Writing an immutable class

An immutable class must respect several requirements, such as the following:

  • The class should be marked as final to suppress extensibility (other classes cannot extend this class; therefore, they cannot override methods)
  • All fields should be declared private and final (they are not visible in other classes, and they are initialized only once in the constructor of this class)
  • The class should contain a parameterized public constructor (or a private constructor and factory methods for creating instances) that initializes the fields
  • The class should provide getters for fields
  • The class should not expose setters

For example, the following Point class is immutable since it successfully passes the preceding checklist:

public final class Point {

private final double x;
private final double y;

public Point(double x, double y) {
this.x = x;
this.y = y;
}

public double getX() {
return x;
}

public double getY() {
return y;
}
}

If the immutable class should manipulate mutable objects, consider the following problems.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.149.213.44