Java: Окружение
Какое значение окажется внутри переменной result
после выполнения кода?
public static void main(String[] args) {
var age = 5;
var result = generate();
}
static int generate() {
return age + 3;
}
Правильный ответ: код не скомпилируется, компилятор выдаст ошибку, потому что внутри функции нет переменной с именем age
, но функция пытается её использовать.
Функция не имеет доступа к переменным, объявленным в других функциях.
Рассмотрим другой пример:
public static void main(String[] args) {
var age = 5;
var result = generate();
}
static int generate() {
var age = 10;
return age + 3;
}
Переменная age
в main()
изнутри generate()
недоступна, она не мешает объявлению переменной с таким же именем в generate()
- но это будет уже другая переменная. Функция generate()
будет под именем age
видеть свою переменную, а main()
- свою.
В данном случае результатом будет число 13
....age = 5
никак не влияет на код функции.
Задание
Это задание не связано напрямую с уроком, это просто еще одно полезное упражнение по работе с функциями.
Напишите функцию getAgeDifference()
, которая принимает два года рождения и возвращает строку с разницей в возрасте в виде The age difference is 11
.
Как обычно, функцию нужно сделать public static
, а не просто static
, чтобы мы смогли вызвать ее из другого класса.
Советы
Напомним, что в Java есть функция
Math.abs()
, которая возвращает модуль переданного числа: например,Math.abs(-12)
вернёт12
.
Пожалуйста, авторизуйтесь, это необходимо для отслеживания прогресса выполнения уроков. Если у вас ещё нет учётной записи, то сейчас самое время создать аккаунт.