Это все равно, что сказать, какая комната лучше кухни или ванной комнаты, они обе комнаты, но у них разные функции.
Переменная static
одинакова для нескольких объектов.
Переменная экземпляра, объявленная через private
выше, относится к конкретному объекту.
Обратите внимание, что private
- это модификатор доступа, static
- нет, переменная может быть и тем, и другим.
В месте, где у вас есть переменная static
, внутри функции это вообще не переменная класса / объекта, а традиционная переменная static
уровня функции, которая будет единичной при всех вызовах функция, делающая ее похожей на переменную static
уровня класса, но доступной только в методе, в котором она определена.