Область видимости

Курс "Программирование под Андроид"
7 уровень , 12 лекция
Открыта

Код

Этот код не стоит копировать в Андроид Студио. Это всего лишь часть большого приложения. Но этой части достаточно, чтоб решить задачу.

Ссылка на фрагмент кода Cola Wars (Войны Колы).

Комментарии (23)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Anonymous #3271744 Уровень 30
20 августа 2023
должна быть глобальной
misha_lazarev Уровень 34
21 мая 2022
Автор хотел скорее всего указать что правильный вариант локальная, но исходя из логики то правильный вариант, глобальная, так как в методе showMeVotes(View view); будет ошибка из-за двух переменных.
18 мая 2021
Она локальная. DanTel 18.05.2021
N1kson Уровень 3
4 декабря 2020
1 метод: объявляется и инициализируется локальная переменная. 2 метод: объявляется и инициализируется локальная переменная. При inc получаем ошибку, потому что переменной не присвоили значение 3 метод: используются 2 необъявленных переменных, как локально так и глобально. Получаем ошибку
🦔 Виктор Уровень 20 Expert
29 ноября 2020
1. Обе переменные локальные, потому что объявлены внутри методов. 1.1. Первая переменная объявлена и сразу проинициализирована, всё в порядке. 1.2. Вторая переменная объявлена, но НЕ проинициализирована, затем ей пытаются присвоить её же значение (которое не задано) + 1, такое компилятор не пропустит! 2. Всё получится!
Учиха Шисуи Уровень 22 Expert
11 декабря 2020
UPD:// В следующей статье, я увидел, что вы правильно мыслите. Не принимайте на свой счёт, я поправил вас, во избежание недоразумений для новичков. Прошу прощения, вынужден вас поправить, так как вам ставят лайки и у вас есть пометка эксперта) ваш ответ неверен. На самом деле пример набросан весьма аляписто, оттого и не сразу можно понять, что именно здесь происходит. Объясню. В данном случае говорить будем только о переменных, которые подчеркнуты красной линией в видео -

udacicolaVotes
потому в своем ответе, я буду игнорировать метод касающийся переменной pepcityVotes. Так вот. 1. В случае метода где мы голосуем за переменную Кола и инкрементируем ее, переменная, как вы и сказали, является локальной. 2. В последнем же методе (подсчета голосов), происходит обращение к переменным. Однако, мы не можем полагать что происходит обращение к локальным переменным - из предыдущих лекций, мы узнали, что локальные переменные - не видны за пределами метода (метод из пункта 1.) ___ Возникает 2 предположения: Первое - В последнем методе (подсчета голосов) - обращение происходит к глобальным переменным (переменным класса), о которых в видео упомянуто и вовсе не было, однако предположение такое имеет место быть - описанный синтаксис это допускает. В таком случае описание этих переменных осталось за кадром, в том самом троеточии. Второе предположение - за ширмой нет никаких глобальных переменных и описанный код - всё что у нас есть. Он спровоцирует синтаксическую ошибку (подсветит метод подсчёта голосов красным цветом), не позволяя даже запустить компиляцию. ___ Так как курс разрабатывали не дураки, наверняка второй вариант является верным. Короче говоря, udaciCola в последнем случае, чисто теоретически не может быть локальной переменной. Благодарю, за внимание. С уважением.
🦔 Виктор Уровень 20 Expert
13 декабря 2020
Шисуи-сан, спасибо за ваши развёрнутые комментарии, замечания и дополнения. Всё прочёл и взял на заметку ✌
Stragin Уровень 4
9 июня 2020
обе локальные
Anton Evseev Уровень 41
22 декабря 2019
udacicolaVotes - Локальная переменная, так как объявлена внутри метода voteUdacicola.
Ripper Jackm Уровень 19
30 июня 2019
Елена Грушина Уровень 3
6 мая 2019
локальная переменная
Фарид Велиев Уровень 4
22 января 2019
Локальные переменные