【问题标题】:Managing multiple instances of same class (Java)管理同一类的多个实例 (Java)
【发布时间】:2014-04-20 02:49:52
【问题描述】:

嘿,我在管理 java 程序中同一类的多个实例时遇到了一些麻烦。我已经创建了一个 java 类的一些实例,其中包含一些从类中的整数加/减的方法,但是正在发生的事情是在所有实例上都进行了加减(参见下面的代码),非常感谢有关管理这些实例的任何提示。

Integerclass num1 = new Integerclass();
Integerclass num2 = new Integerclass();
Integerclass num3 = new Integerclass();
num1.assignvalue(3);
num2.assignvalue(5);
num1.addone();
num2.subtractone();
System.out.println(num1.i);
System.out.println(num2.i);

所以当我尝试从每个实例的整数类中打印出整数“i”时会发生什么,即使它们应该是不同的值,因为它们是不同的实例,并且我正在为它们添加和减去不同的值,但它们是相同的。

【问题讨论】:

  • 在此处添加IntegerClass
  • 好吧,在这种情况下,由于 1+3 和 5-1 都是 4,我并不奇怪你得到相同的数字...
  • 如果这里真的有问题,那么问题很可能是“i”被声明为“静态”。不要那样做!去掉“静态”,问题就会神奇地解决。
  • thx 我删除了静态,它现在似乎已经工作了(顺便说一句,我并不是要使用 5 和 3,它是用于任何整数,4 是巧合)

标签: java class object instance


【解决方案1】:

让我们一步一步来。

Integerclass num1 = new Integerclass();
Integerclass num2 = new Integerclass();

我们有两个新实例,num1num2

num1.assignvalue(3);

num1 现在是 3。

num2.assignvalue(5);

num2 现在是 5。

num1.addone();

num1 现在是 4。

num2.subtractone();

num2 现在是 4。

System.out.println(num1.i);
System.out.println(num2.i);

num1num2 都是 4,因此它们将打印相同的内容。

您的代码似乎没问题。如果您不进行完全相同的计算,它们将打印不同的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-15
    • 2011-06-12
    相关资源
    最近更新 更多