Я знаю, что переменные могут быть классифицированы по двум направлениям: -Все переменные экземпляра объявлены вне функций?
Первый способ классифицировать их в глобальные и локальные переменные в зависимости от их объема. Когда переменная доступна всем методам экземпляра класса, то есть во всем классе, тогда она известна как глобальная переменная и, когда она доступна только в блоке кода в экземпляре класса, известна как локальная переменная.
Второй способ - классифицировать их в класс/статические экземпляры/нестатические переменные. Класс/статические переменные - это те переменные, которые относятся к классу, и только одна копия этих переменных существует для всех экземпляров класса и является общей для них. Переменные экземпляра - это те переменные, которые принадлежат экземпляру класса и для которого создается отдельная копия для каждого экземпляра.
Мой инструктор говорит, что переменные экземпляра могут быть объявлены только вне функций. Почему это так? Могут ли локальные переменные не быть переменными экземпляра?
'объявлено вне functions' ... нет функции в Java, только методов. –
Нет, они не могут. Их объем ограничивается использованием внутри метода после того, как они были объявлены в одном. Они недоступны из других методов или объектов. – f1sh
Если метод, вызываемый объектом, является экземпляром или статичным, то я предполагаю, что любые переменные, объявленные в рамках этого метода, будут соответствовать этому. Вид спорный, хотя, поскольку объем таких переменных будет только для этого вызова метода. – David