Переменные, объявленные внутри метода main, являются локальными переменными? - PullRequest
0 голосов
/ 19 февраля 2019

Я хочу спросить вас, является ли переменная, объявленная внутри метода main, переменной экземпляра или локальной переменной.

Это код:

public class App {
   public static void main(String[] args) {
       Animal fish = new Fish();
       ...
   }
}

Я смотрю видеоУчебник от Udemy и инструктор говорят, что fish является переменной экземпляра.Я думал, что переменная, объявленная внутри метода, является локальной переменной.

Ответы [ 5 ]

0 голосов
/ 19 февраля 2019

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

Вы можете сослаться на этот старый поток , чтобы сообщитьразница между локальными переменными и переменными экземпляра

0 голосов
/ 19 февраля 2019

Oracle определяет «переменную экземпляра» таким образом:

Переменные экземпляра (нестатические поля) С технической точки зрения, объекты хранят свои отдельные состояния в «нестатических полях»,то есть поля, объявленные без ключевого слова static.Нестатические поля также известны как переменные экземпляра, потому что их значения уникальны для каждого экземпляра класса

Я думаю, что преподаватель Udemy ссылается на «переменные, которые ссылаются на экземпляр», используя неудачную терминологию,Другими словами, он использует термин «переменная экземпляра» в разговорном, а не в официальном значении.

0 голосов
/ 19 февраля 2019

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

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

class A {
    int data = 50; //instance variable  
    void method() {
        int n = 90; //local variable  
    }
0 голосов
/ 19 февраля 2019

Вызывается Scope .

Тело метода scope Переменная доступна только в теле метода (локальные переменные, параметры)

0 голосов
/ 19 февраля 2019

Если вы объявляете какую-либо переменную в любом методе, это локальная переменная.Ваш главный может быть специальным методом, но это метод.Следовательно, все, что вы объявляете в своем main, также будет локальной переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...