Java在类中共享相同的值

时间:2011-10-28 05:20:58

标签: java arraylist

我有一个名为Hand的类和另一个测试它的类。 Hand使用全局变量并使用某些方法更改其值 如果在类测试中我创建了Hand类的两个变量 其中一个变量的变化会影响另一个变量。我怎么能够 让它们分开?

班级Hand

private static List<Card> hand = new ArrayList<Card>();

班级Test

        Hand hand1 = new Hand();
        Hand hand2 = new Hand();

如果我向hand1 arraylist添加值,它也会更改hand2 arraylist的值。 我可以将它们分开吗?

4 个答案:

答案 0 :(得分:1)

删除static修饰符,该修饰符对于特定类加载器中加载的类的所有实例都是通用的。

答案 1 :(得分:1)

static关键字使变量成为类范围,而不是实例范围。这意味着相同的值对于类的所有实例都是通用的。非静态成员特定于该类的每个实例。删除static关键字,您将获得所需的行为。

答案 2 :(得分:0)

private static List<Card>变为private List<Card>

答案 3 :(得分:0)

private List<Card> hand = new ArrayList<Card>();设为实例变量,而不是将其设为静态 Coz static是类的属性,实例变量是Object的属性...对于不同的Object是不同的。但是在静态的情况下它们对于所有对象都是相同的。