Член экземпляра принадлежит конкретному объекту (экземпляру класса). Статический член принадлежит самому классу, а не его экземплярам.
Ключевые отличия:
- Принадлежность:
- Член экземпляра: каждому объекту класса.
- Статический член: классу.
- Доступ:
- Член экземпляра: через экземпляр класса.
- Статический член: через класс (рекомендуется) или через экземпляр.
- Создание:
- Член экземпляра: при создании каждого нового объекта.
- Статический член: при загрузке класса в память.
- Использование:
- Член экземпляра: хранит состояние конкретного объекта.
- Статический член: хранит данные или реализует поведение, общее для всех экземпляров класса.
Пример различий:
java
В этом примере instanceVariable уникальна для каждого объекта (obj1 и obj2). staticVariable является общей для всего класса MyClass и увеличивается каждый раз при создании нового экземпляра. Статические методы могут обращаться только к статическим членам класса напрямую.