1. Синтаксис объявления метода
Объявление метода в Java похоже на рецепт в кулинарной книге: вы указываете, что метод возвращает (тип), как его зовут, какие ингредиенты (параметры) нужны, и пишете сам рецепт (тело метода).
Общая форма:
тип_возвращаемого_значения имяМетода(параметры)
{
// тут пишем команды
}
- тип возвращаемого значения — что метод возвращает (например, int, void — если ничего не возвращает, String и т. п.).
- имяМетода — придумываемое вами имя (по правилам Java).
- параметры — список переменных, которые метод будет использовать (может быть пустым).
- тело метода — ваши команды в фигурных скобках { }.
Примеры методов без параметров
void printHello()
{
System.out.println("Привет, мир!");
}
Пояснение: void — метод ничего не возвращает; printHello — имя; () — нет параметров.
Пример метода с параметрами
void printName(String name)
{
System.out.println("Привет, " + name + "!");
}
Пояснение: void — не возвращает значение; printName — имя метода; String name — один параметр типа String.
Пример метода с несколькими параметрами
void printSum(int a, int b)
{
System.out.println("Сумма: " + (a + b));
}
Пояснение: параметры указываются через запятую. Внутри метода используем их как обычные переменные, оператор + выполняет сложение.
Важно!
- Методы объявляются внутри класса, но НЕ в других методах.
- В Java нельзя объявлять методы внутри других методов — никаких “матрёшек”.
2. Вызов метода
Объявить метод — это как повесить табличку «Сделаю кофе». А чтобы кофе действительно появился, нужно вызвать метод — написать его имя и передать значения параметров.
Как вызвать метод
Если метод находится в том же классе и объявлен как static (как main), можно вызвать его просто по имени:
printHello();
printName("Алиса");
printSum(3, 5);
Если метод не static, его нужно вызывать через объект (об этом позже, когда будем изучать классы и объекты).
Пример: вызов метода из main
public class MethodsDemo
{
public static void main(String[] args)
{
printHello();
printName("Боб");
printSum(10, 20);
}
static void printHello()
{
System.out.println("Привет, мир!");
}
static void printName(String name)
{
System.out.println("Привет, " + name + "!");
}
static void printSum(int a, int b)
{
System.out.println("Сумма: " + (a + b));
}
}
Обратите внимание: методы объявлены с модификатором static, чтобы их можно было вызывать из main (который тоже static).
3. Параметры и аргументы: что это такое?
Параметры — это переменные, которые объявляются в скобках при объявлении метода.
Аргументы — это реальные значения, которые вы передаёте при вызове метода.
Аналогия: Параметры — как список покупок; Аргументы — что вы реально кладёте в корзину.
Пример
static void greet(String name) // name — параметр
{
System.out.println("Привет, " + name + "!");
}
public static void main(String[] args)
{
greet("Катя"); // "Катя" — аргумент
greet("Вася"); // "Вася" — аргумент
}
Когда вызываете greet("Катя"), внутри метода переменная name станет равна "Катя".
Несколько параметров
static void printInfo(String name, int age)
{
System.out.println("Имя: " + name + ", возраст: " + age);
}
public static void main(String[] args)
{
printInfo("Маша", 25);
printInfo("Петя", 31);
}
Внимание! Типы и порядок параметров должны совпадать с тем, как вы объявили метод.
4. Практика: пишем свои методы
Метод, который печатает приветствие с именем пользователя
static void sayHelloTo(String name)
{
System.out.println("Привет, " + name + "!");
}
public static void main(String[] args)
{
sayHelloTo("Андрей");
sayHelloTo("Эльвира");
}
Метод, который считает сумму двух чисел
static void printSum(int a, int b)
{
int sum = a + b;
System.out.println("Сумма: " + sum);
}
public static void main(String[] args)
{
printSum(7, 8);
printSum(15, -5);
}
Метод, который печатает элементы массива
static void printArray(int[] array)
{
System.out.print("Массив: ");
for (int i = 0; i < array.length; i++)
{
System.out.print(array[i] + " ");
}
System.out.println();
}
public static void main(String[] args)
{
int[] nums = {1, 2, 3, 4, 5};
printArray(nums);
}
Метод, который печатает n раз одну и ту же строку
static void repeatPrint(String text, int n)
{
for (int i = 0; i < n; i++)
{
System.out.println(text);
}
}
public static void main(String[] args)
{
repeatPrint("Java — это круто!", 3);
}
5. Как методы помогают строить приложение
Если вы решите написать простую консольную игру или калькулятор, код станет понятнее, если каждую задачу оформить как метод.
Пример: мини-калькулятор
public class Calculator
{
public static void main(String[] args)
{
printGreeting();
printSum(3, 7);
printDifference(10, 4);
}
static void printGreeting()
{
System.out.println("Добро пожаловать в калькулятор!");
}
static void printSum(int a, int b)
{
System.out.println("Сумма: " + (a + b));
}
static void printDifference(int a, int b)
{
System.out.println("Разность: " + (a - b));
}
}
В будущем вы сможете добавлять новые методы (умножение, деление, работа с массивами чисел и т. д.), и приложение будет расти, не превращаясь в длинную «простыню» кода.
6. Полезные нюансы
Имена методов
- Имя метода обычно начинается с маленькой буквы и пишется в стиле camelCase: printSum, sayHelloTo, calculateArea.
- Имя должно отражать действие. Избегайте doStuff и method1.
Порядок параметров
- Соблюдайте порядок и типы параметров при вызове.
- Если метод принимает printInfo(String name, int age), нельзя вызвать printInfo(25, "Маша").
Можно ли объявить два метода с одним именем?
Да, если у них разный список параметров (разные типы или количество). Это перегрузка методов:
static void printSum(int a, int b) { /* ... */ }
static void printSum(int a, int b, int c) { /* ... */ }
Этой теме будет посвящена отдельная лекция — сейчас достаточно знать, что Java не ограничивает одним методом на имя.
7. Типичные ошибки при работе с методами и параметрами
Ошибка № 1: Несовпадение количества или типов параметров при вызове.
Если метод объявлен как printSum(int a, int b), а вы вызываете его как printSum(5), компилятор скажет, что такого метода не существует. Аналогично, printSum("пять", 7) — ошибка типов.
Ошибка № 2: Путают параметры и аргументы.
В объявлении метода пишутся параметры (например, int a, int b), а при вызове — аргументы (printSum(5, 7)). Не нужно создавать в main переменные с теми же именами — важнее совпадение типов и порядка.
Ошибка № 3: Пытаются объявить метод внутри метода.
В Java методы объявляются только на уровне класса. Внутри другого метода объявлять нельзя.
Ошибка № 4: Не используют static при вызове из main.
Если вы вызываете метод из main, добавьте static к объявлению или создайте объект и вызывайте метод у него. Подробности — позже, при изучении ООП.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ