Когда вы определяете новый класс объектов, вы можете решить, какой экземпляр
переменные, которые они должны иметь. Каждый экземпляр класса будет иметь
собственная копия всех переменных, которые вы объявляете; каждый объект управляет своим собственным
данные.
Однако вы не можете прописывать переменные для объекта класса; имеются
никакие "переменные класса" не соответствуют переменным экземпляра. Только внутренний
структуры данных, инициализированные из определения класса, предоставляются для
класс. Объект класса также не имеет доступа к переменным экземпляра.
любых случаев; он не может их инициализировать, прочитать или изменить.
Следовательно, для всех экземпляров класса для совместного использования данных внешний
какая-то переменная обязательна. Некоторые классы объявляют статические переменные
и предоставить методы класса для управления ими. (Объявление статической переменной
в том же файле, что и определение класса, ограничивает область его действия только
class - и только часть класса, которая реализована в файле.
В отличие от переменных экземпляра, статические переменные не могут наследоваться
подклассы.)
Статические переменные помогают дать объекту класса больше функциональности, чем просто
это из "фабричных" производящих экземпляров; это может приблизиться к тому, чтобы быть
завершенный и универсальный объект сам по себе. Объект класса может быть
используется для координации экземпляров, которые он создает, распределять экземпляры из
списки уже созданных объектов или управление другими процессами, необходимыми для
приложение. В случае, когда вам нужен только один объект
конкретный класс, вы можете поместить все состояние объекта в статический
переменные и использовать только методы класса. Это экономит шаг выделения
и инициализация экземпляра.