これは不変クラスですか?不変クラスが final である必要はありますか?
immuable になるボックスクラスがあります。ボックスを変更すると、新しいボックスが作成されます。
public class MyImmutableBox {
Integer length;
Integer breadth;
/*Constructor*/
public MyImmutableBox(Integer length,Integer breadth){
this.length=length;
this.breadth=breadth;
}
/*Getters*/
public Integer getBreadth() {
return breadth;
}
public Integer getLength() {
return length;
}
/*Member functions*/
/*Changing entire box size*/
public MyImmutableBox changeMyBoxSize(Integer lengthToBeAltered,Integer breadthToBeAltered){
return new MyImmutableBox(length+lengthToBeAltered,breadth+breadthToBeAltered);
}
/*Changing either length otr breadth*/
public MyImmutableBox changeMyBoxLenth(Integer lengthToBeAltered){
return new MyImmutableBox(length+lengthToBeAltered,breadth);
}
public MyImmutableBox changeMyBoxBreadth(Integer breadthToBeAltered){
return new MyImmutableBox(length,breadth+breadthToBeAltered);
}
}