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