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());