假设我有一个Customer类,其中有一个Address Class的引用,我们可以通过使成员变量私有最终等等来制作Customer类的对象....我的问题是这个地址类是可变的getter和setter有它在Customer类中的引用,现在我们如何使Customer类不可变?在客户类中进行此地址引用是否足以使其成为不可变类(客户类的对象不可变)有人可以解释一下吗?
现在在场景中我们如何使Customer类的对象不可变?以及客户和地址之间的关系如何显示在内存中?有人可以回答这个吗?
public final class Customer{
private final String name;
private final Address address;
public Customer(String name, Address address){
this.name=name;
this.address= address;
}
public String getName(){
return this.name;
}
public String getAddress(){
return this.name;
}
}
public class Address{
private String streetName;
private Long pincode;
public void setStreeName(String streetName){
this.streetName = streetName;
}
public void setPincode(long pincode){
this.pincode = pincode;
}
public String getStreetName(){
return this.streeName;
}
public long getPincode(){
return this.pincode;
}
}
答案 0 :(得分:0)
在上面的客户类中,其他数据类型是原始的(不可变的),而Address类则不是,所以在Address引用的getter方法中,我们应该返回一个新的地址对象,其属性类似于客户类中的Address引用。