Методы
Метод — это «машинка». Даёшь ей вход (параметры) → она делает работу → возвращает результат. Назвал один раз — вызывай сколько угодно, не переписывая код.
Из чего состоит метод
int sum(int a, int b) { // принимает два числа
return a + b; // возвращает их сумму
}
int result = sum(2, 3); // вызов → result = 5
Если метод ничего не возвращает (просто делает) — тип возврата void:
void print(String msg) {
System.out.println(msg); // печатает, ничего не отдаёт
}
Копнуть глубже
Перегрузка (overloading). Можно сделать несколько методов с одним именем, но разными параметрами — Java сама выберет нужный по аргументам.
Параметры передаются по значению. Примитив уходит в метод копией (оригинал не изменится). Объект — копией ссылки (метод видит тот же объект в куче).
return сразу завершает метод — код после него не выполнится.
Под капотом
Каждый вызов метода кладёт фрейм на стек вызовов (call stack): там его локальные переменные и точка, куда вернуться. Метод закончился — фрейм снимается, управление возвращается назад.
Рекурсия — это когда метод вызывает сам себя. Каждый вызов кладёт новый фрейм. Если нет условия выхода — фреймы не кончаются, стек переполняется и падает StackOverflowError. Поэтому у рекурсии всегда должна быть «база» — условие, на котором она останавливается.
• что такое перегрузка и что параметры идут по значению (если дошёл до 2-го слоя);
• что такое стек вызовов и StackOverflowError (если дошёл до 3-го слоя).