2012-08-09 64 views
0

您好同胞程序員。 我有一個關於靜態和使用Java中的這個例子的點運算符的問題。Java中的點運算符和靜態關鍵字

所以我有我的庫存類中的ArrayList這個類變量聲明。

static List<Multimedia> list = new ArrayList<Multimedia>(); 

如果我選擇使用ArrayList中的Add方法中的方法,我應該寫這樣的方法調用:Inventory.list.add(Object o)或者我應該使用list.add(Object o)。他們的意思是一樣的嗎?如果不是,我應該使用哪種方法調用?

回答

1

類外,您必須通過類名來訪問它(但它取決於訪問修飾符,即私人不能在課堂以外訪問),在課堂內部你可以使用其中任何一個。

5

從類都是一樣的,

使用

Inventory.list.add(Object o) 

它會一直告訴你,它的靜態字段代碼

+0

編碼規範建議使用類名仍然叫,但是這取決於你。 – 2012-08-09 06:47:35

+0

是的,因爲@AVD建議很高興隱藏列表並提供使用方法的句柄 – 2012-08-09 06:53:19

1

當然,您應該使用Inventory.list.add(Object o),因爲靜態字段處於類級別,即在該類別的對象之間共享。

+0

非常感謝回覆!我將使用代碼約定作爲使用Classname的建議。我愛你的建議AVD。這是一個好主意:) – Nicholas 2012-08-09 07:01:54

4

你不能在其他包訪問list所以這將是更好的創建私有列表並通過公共包裝方法揭露它。

private static List<Multimedia> list = new ArrayList<Multimedia>(); 

public static void addMultimedia(Multimedia media){ 
    list.add(media); 
} 
public static List<Multimedia> getList(){ 
    return list; 
} 

要添加Multimedia對象:

Inventory.addMultimedia(new Multimedia()); 
//or 
Inventory.getList().add(new Multimedia());