-1

我正在为课程做一个程序。我们必须有 2 个构造函数。我如何在他们两个中保持计数?
例如:如果我的测试程序使用 2 个构造函数创建了 5 个不同的人,我将如何返回创建的人数?
在我的两个构造函数中,我都有 count++,但它所做的一切都返回 1。

   public Archer(String first, String middle, String last)
   {
      name = first + " " + middle + " " + last;
      count++;
   }

   public Archer(String first, String last)
   {
      name = first + " " + last;
      count++;
   }

我试图创建另一个实例变量并将其设置为相等的计数,但是当我这样做时它返回 0。

4

3 回答 3

0

您的count变量必须是类范围的变量,实例计数才能起作用。

为此,只需将其声明为static在您的类中,并像在构造函数中一样继续递增它。

例如:

public class Archer {

  static int count;

  // TODO the rest of the code, and possibly a public getter for the count property
}
于 2013-11-20T23:04:50.063 回答
0

如果你想保持班级内的人数,你需要将人数设为静态。

在更真实的情况下,您宁愿保留人员列表并返回人数,但这取决于您的任务:-)

于 2013-11-20T23:05:29.440 回答
0

这完全取决于您如何定义您的count.

如果您已将其定义为实例变量,则 resultcount = 1是正确的结果,因为count++将在每个对象创建时执行,并且count将由您刚刚创建的对象绑定。如果您想知道创建对象的次数,请将count变量定义为static

于 2013-11-20T23:08:04.053 回答