Ведение счета внутри 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.

3 ответа

Ваш count Переменная должна быть переменной класса, чтобы количество экземпляров работало.

Чтобы сделать это, просто объявите это как static в вашем классе, и продолжайте увеличивать его, как вы делаете в своих конструкторах.

Например:

public class Archer {

  static int count;

  // TODO the rest of the code, and possibly a public getter for the count property
}

Если вы хотите вести подсчет людей внутри класса, вы должны сделать подсчет статическим.

В более реальном сценарии вы бы предпочли вести список людей и возвращать их количество, но это зависит от вашего назначения:-)

Все зависит от того, как вы определили count,

Если вы определили его как переменную экземпляра, то результат count = 1 является правильным результатом, так как count++ будет выполняться для каждого объекта создания и count будет привязан к объекту, который вы только что создали. если вы хотите знать, сколько раз объект был создан, определите count переменная как static

Другие вопросы по тегам