在类中共享相同值的Java
我有一个名为在类中共享相同值的Java,java,arraylist,Java,Arraylist,我有一个名为Hand的类和另一个类来测试它。 Hand使用全局变量并通过某些方法更改其值 如果在类内测试,我将创建Hand类的两个变量 其中一个变量的更改将影响另一个变量。我怎么能 把他们分开 类手动: private static List<Card> hand = new ArrayList<Card>(); 如果我向hand1arraylist添加值,它也会更改hand2arraylist的值。 我可以将它们分开吗?删除静态修饰符,该修饰符对于在特定类加载器中加载
Hand
的类和另一个类来测试它。
Hand
使用全局变量并通过某些方法更改其值
如果在类内测试,我将创建Hand
类的两个变量
其中一个变量的更改将影响另一个变量。我怎么能
把他们分开
类手动:
private static List<Card> hand = new ArrayList<Card>();
如果我向hand1
arraylist添加值,它也会更改hand2
arraylist的值。
我可以将它们分开吗?删除静态
修饰符,该修饰符对于在特定类加载器中加载的类的所有实例都是通用的。将私有静态列表
转换为私有列表使私有列表手动=新建ArrayList()代码>作为实例变量,而不是将其设为静态。
因为静态是类的属性,实例变量是对象的属性。。。这对于不同的对象是不同的,但对于静态对象,它们是相同的 关键字static
使变量类的作用域为,而不是实例的作用域。这意味着相同的值对于类的所有实例都是通用的。非静态成员是类的每个实例所特有的。删除static
关键字,您将获得所需的行为
Hand hand1 = new Hand();
Hand hand2 = new Hand();