Функции (методы)
Когда программа становится больше, одних main и нескольких строк кода уже мало.
Хочется разбить задачу на аккуратные шаги: «прочитать данные», «посчитать сумму», «вывести результат» — и каждый шаг оформить отдельно.
Для этого в Java есть методы (функции внутри класса).
Метод — это именованный кусок кода, который можно вызвать по имени.
Краткая сводка
Общий вид метода:
тип_результата имяМетода(параметры) {
// тело метода
return значение; // если тип_результата не void
}
Вызов метода:
Простейший пример:
Зачем нужны методы
Основные причины:
- не копировать один и тот же код много раз;
- сделать программу понятнее: каждый метод отвечает за одну маленькую подзадачу;
- упростить отладку: ошибку легче искать в небольшом методе, чем в огромном
main.
Пример без методов — всё в одном месте:
int a = in.nextInt();
int b = in.nextInt();
int c = in.nextInt();
int sum = a + b + c;
System.out.println(sum);
С методом:
static int sum3(int x, int y, int z) {
return x + y + z;
}
// ...
int a = in.nextInt();
int b = in.nextInt();
int c = in.nextInt();
int sum = sum3(a, b, c);
System.out.println(sum);
Метод с результатом (return)
Метод может вычислить значение и вернуть его через return.
Использование в main:
Здесь:
intпередsum— тип результата (метод возвращаетint);aиb— параметры (локальные имена для входных данных);return s;— место, где метод отдаёт результат обратно.
Можно записать короче:
Важно: тип после return должен совпадать с типом результата (int здесь).
Метод без результата (void)
Иногда метод ничего не возвращает, а только что‑то делает: печатает, изменяет массив и т.п.
В этом случае вместо типа результата используется void, а return либо не пишут, либо пишут return; без значения.
Вызов:
Такой метод вызывают как отдельную команду, его нельзя присвоить переменной:
Параметры и аргументы
В объявлении метода в скобках указаны параметры — имена для входных данных метода.
Вызов:
При вызове:
- значение аргумента копируется в параметр;
- внутри метода используется именно параметр
x.
Если параметров несколько, они перечисляются через запятую:
Примеры методов
Проверка чётности
Использование:
int n = in.nextInt();
if (isEven(n)) {
System.out.println("Чётное");
} else {
System.out.println("Нечётное");
}
Минимум из двух чисел
Подсчёт суммы элементов массива
static int sumArray(int[] a) {
int sum = 0;
for (int i = 0; i < a.length; i++) {
sum = sum + a[i];
}
return sum;
}
Вызов:
main как пример метода
Метод main — тоже обычный метод (только со специальной сигнатурой), с которого Java начинает выполнение программы:
Пока в наших программах все вспомогательные методы будут static и находиться в том же классе, что и main.
Вызывать их можно просто по имени: sum(...), isEven(...), sumArray(...).
Что нужно запомнить
Метод — это именованный кусок кода, который можно вызывать по имени:
Метод с типом результата (int, double, boolean и т.п.) должен возвращать значение через return.
Метод с типом void ничего не возвращает, его вызывают как отдельную команду.
Параметры — это «места» для входных данных метода, аргументы передаются при вызове.
В первых программах достаточно уметь писать простые static‑методы в том же классе, что и main, и вызывать их по имени.