建議最終(不可變)java類中的數據字段具有公共訪問修飾符,即使數據字段不是對可變數據類型的引用或者我們是否應該訪問數據字段直接作爲數據字段應該在構造函數本身中定義,從而使所有改變類的內部表示的機會無效。 請建議?與不可變類一起使用時訪問Java中的修飾符
例如:
public class MainApp {
public static void main(String args[]) {
Immutablesample immutablesample = Immutablesample.getInstance("akkhil");
System.out.println(" Before modification " + immutablesample.getName());
immutablesample.name = "gupta";
System.out.println(" After modification " + immutablesample.getName());
}
}
是調用代碼試圖通過直接訪問它(沒有訪問修飾符)爲下面的類來改變數據字段:
public final class Immutablesample {
private final String name;
private Immutablesample(String name){
this.name = name;
}
public String getName(){
return name;
}
public static Immutablesample getInstance(String name){
return new Immutablesample(name);
}
}
它會如何做如果我將修改器從私有變爲公有private String name;公共字符串名稱; 由於對象是使用參數化構造函數創建的,因此具有不可變數據字段,爲什麼需要將數據字段設置爲私有?
你可以發表一個或兩個例子嗎?由於缺乏標點符號和適當的術語,很難理解這個問題。 –
你可以在這裏找到所有的細節:https://docs.oracle.com/javase/tutorial/essential/concurrency/imstrat.html – grsdev7
編號數據字段應始終是私人的和最終的。只提供獲得者(如果需要,可以返回可變實例的防禦副本) – TheLostMind