簡體   English   中英

如何使用可變成員變量創建不可變類?

[英]How to create immutable class with mutable member variable(s)?

假設我有一個 Customer 類,它有一個 Address Class 的引用,我們可以通過使成員變量私有 final blah blah 來創建 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;
}

}

在上面的客戶類中,其他數據類型是原始的(不可變的),而地址類不是,所以在地址引用的getter方法中,我們應該返回一個新的地址對象,其屬性類似於客戶類中的地址引用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM