Не увидел, что это вопрос с тегом Java, а не C ++;
В любом случае я оставлю это здесь, если кто-то не хочет, чтобы это удалили.
Особенность статических членов класса заключается в том, что они тесно связаны с классом, а не с экземпляром класса. Другими словами, для статической переменной имеется только одно выделение памяти, которое будет совместно использоваться всеми экземплярами этого класса (объектами класса).
В приведенном выше коде в методе getCount () вы
return this.count;
Помните, что статические члены не имеют этого указателя, то есть к ним нужно обращаться с помощью classname :: static_member при доступе из-за пределов класса, и используйте только имя переменной при определении методов класса, как вы делали выше.
Поэтому ваш код должен выглядеть примерно так:
return count;
Если вам нужна только одна копия членов класса для любого числа созданных объектов класса, тогда вам лучше использовать статические методы, а статические методы могут работать только со статическими членами.
Если вам не нравятся статические методы и статические члены, синглтон - не плохой подход.