2011-10-28 146 views
-2

我有一个叫Hand类和其他类进行测试。 Hand使用全局变量并用一些方法更改它们的值 如果在类test中我创建了Hand类的两个变量 其中一个变量的变化会影响其他变量。我如何 使它们分开?的Java共享相同的价值观一类

Hand

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

Test

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

如果我添加值hand1的ArrayList也改变hand2 ArrayList中的值。 我可以将它们分开吗?

回答

1

卸下static改性剂,它是常见的在一个特定的类加载器加载的类的所有实例。

0

打开private static List<Card>private List<Card>

0

private List<Card> hand = new ArrayList<Card>();作为实例变量而不是使之静..
怎么把静态是类和实例变量的财产是对象的财产......这是针对不同的对象不同..但在静态情况下,他们是相同的所有对象..

1

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