У меня есть две переменные, одна из которых является локальной в функции и другой глобальной. Эти две переменные имеют одно и то же имя. Во время компиляции у меня нет ошибок. Итак, когда код работает, и я использую эту переменную, какой из них выбран?
Спасибо.
Локальная переменная всегда будет скрывать (теневую) "глобальную".
В Java вы можете получить доступ к переменной экземпляра, используя ключевое слово this
. Это часто используется в конструкторах. Например:
private String someVar;
public ClassName(String someVar) {
this.someVar = someVar; // this.someVar is the instance variable
// someVar is the local variable
}
Локальная переменная затеняет глобальную переменную. т.е. если вы явно не указали, что используете глобальную переменную, в этой функции будет использоваться локальная переменная с тем же именем.