The following code shows how to make an immutable class:
package com.test;
final class TestImmutable
{
// instance var are made private to restrict the access
// and final to not get reassigned
private final int var1;
private final double var2;
public TestImmutable(int paramCount,double paramValue)
{
var1= paramCount;
var2 = paramValue;
}
// Only accessors are provided i.e getters to access the variables
public int getVar1()
{
return var1;
}
public double getVar2()
{
return var2;
}
}
//class TestingImmutable
public class TestingImmutable
{
public static void main(String[] args)
{
TestImmutable obj1 = new TestImmutable(3,5);
System.out.println(obj1.getVar1());
System.out.println(obj1.getVar2());
// There is no other way to change the values of var1 & var2
//only accessors getVar1(),getVar2() to get the values
// no subclassing, no public access to varX
}
}