Объектно-ориентированное программирование на Java. Платформа Java SE. Тимур Машнин. Читать онлайн. Newlib. NEWLIB.NET

Автор: Тимур Машнин
Издательство: Издательские решения
Серия:
Жанр произведения: Компьютеры: прочее
Год издания: 0
isbn: 9785005039606
Скачать книгу
начиная с объявления и для остальной части программы.

      Но они могут временно затеняться другими локальными переменными с тем же именем.

      В этом примере показан цикл.

      Для циклов также объявляются локальные переменные.

      Здесь переменная x цикла for не позволяет нам видеть глобальную переменную при выполнении цикла.

      Здесь у нас есть глобальная переменная x и глобальная переменная y.

      Они инициализируются 1 и 0 соответственно.

      Затем у нас есть глобальная переменная z, которая сохраняет значение y, но после выполнения этого цикла for.

      Этот цикл for выполняется дважды.

      Один раз для x равного 1 и один раз для x равного 2.

      В каждом цикле for, y накапливает значение x.

      Таким образом, при первом запуске y получает значение 1, а во втором y получает значение 1 плюс 2, равно 3.

      Когда мы выходим из цикла for, локальная переменная x исчезает, остается только глобальная.

      y имеет значение 3, и это значение, которое мы сохраняем в z.

      Таким образом, мы видим точно такое же поведение для этих переменных в цикле for, как мы видели с локальными переменными в методах и с параметрами в методах.

      В этом примере у нас есть глобальная переменная x.

      И у нас есть метод с параметром x.

      И внутри этого метода у нас есть цикл for с другой переменной x.

      Таким образом, в этом случае у нас есть 3 переменных x.

      Поэтому, когда мы вызываем f с x плюс 2, в последней строке, где x равно 1, мы вызываем f с 3, чтобы вычислить z.

      В методе, параметр x равен 3.

      Внутри метода мы объявляем переменную y, инициализированную 0, и затем мы определяем цикл for.

      Этот цикл for выполняется два раза, как в предыдущем примере.

      Здесь, мы объявляем другую переменную x, которая делает невидимыми предыдущие две переменные x, пока мы не выполним цикл for.

      Здесь мы увеличиваем значение y.

      y в конце получает 3 и возвращает y плюс x.

      Но что это за х?

      Это не та переменная x в цикле for, потому что мы вышли из цикла for.

      Эта x равна 3 и это параметр метода.

      Поэтому возвращается 3 плюс 3.

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

      Этот пример легко проанализировать.

      Метод f определяется в контексте, где x равно 1.

      Таким образом, этот метод всегда возвращает 1 независимо откуда он был вызван.

      x равно 1 и z также присваивается 1.

      Важно отметить, что f получает свое определение в том месте, где он определен.

      Если он определен в том месте, где x равно 1, метод f определяется, чтобы вернуть 1.

      И это видно в этом примере.

      В этом примере у нас есть два метода: f и g.

      g вызывает f, и он вызывает его в контексте, где x равно 0.

      И здесь нужно учитывать, что метод f был определен в контексте, где x равно 1.

      И мы