Когда мы используем переменную класса, а не объект класса? - PullRequest
0 голосов
/ 20 марта 2020

Я изучаю о переменных c. Они говорят, что переменные stati c являются переменными класса. Они привели пример, подобный этому

class Bicycle{
    private static int noOfBicycles = 0;
} 

При вызове этого мы можем напрямую использовать имя класса для вызова этой переменной без создания какого-либо объекта, т.е.

Bicycle.noOfBicycles

Итак, когда мы нужны эти переменные состояния, а не переменные экземпляра?

1 Ответ

0 голосов
/ 20 марта 2020

Когда переменная объявлена ​​как stati c, создается единственная копия переменной, которая используется всеми объектами на уровне класса. Переменные Stati c, по сути, являются глобальными переменными. Все экземпляры класса имеют одну и ту же переменную stati c.

Переменные экземпляра не являются переменными c и объявлены в классе вне любого метода, конструктора или блока. Поскольку переменные экземпляра объявляются в классе, эти переменные создаются, когда объект класса создается и уничтожается при уничтожении объекта.

Основные различия между переменными stati c и non stati c лучше объяснено здесь

Также уже ответил Стати c против переменных экземпляра: Разница?

...