JavaRush/Курсы/JAVA 25 SELF/Объявление и вызов методов, параметры

Объявление и вызов методов, параметры

Открыта

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 к объявлению или создайте объект и вызывайте метод у него. Подробности — позже, при изучении ООП.

1
Задача
JAVA 25 SELF,  8 уровень,  2 лекция
Недоступна
Личное приветствие для нового пользователя 👋
Личное приветствие для нового пользователя 👋
1
Задача
JAVA 25 SELF,  8 уровень,  2 лекция
Недоступна
Быстрый подсчет стоимости покупки 💰
Быстрый подсчет стоимости покупки 💰
1
Задача
JAVA 25 SELF,  8 уровень,  2 лекция
Недоступна
Создание карточки сотрудника для отдела кадров 👩‍💻
Создание карточки сотрудника для отдела кадров 👩‍💻
1
Задача
JAVA 25 SELF,  8 уровень,  2 лекция
Недоступна
Проектирование различных форм и размеров объектов 📐
Проектирование различных форм и размеров объектов 📐
Комментарии (12)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Eq Vert
Уровень 22
1 июля, 21:59
Чему вы научились после курсов? писать System.out.println 😀😀😀
Anonymous #6483349
Уровень 29
9 апреля, 13:32
Не нравятся задачи по этой теме, вся их суть написать System.out.println и передать туда нужные параметры, хочется разобраться на практике не только с параметрами метода и аргументами. Задания не по теме ((
Kazbekov Andrew
Уровень 66
27 марта, 14:00
Материал хороший, но вот задачи просто до невозможности легкие. Если уж тема про методы, то дайте эти методы в задаче написать самому, а не вписывать sout в каждое тело метода
Михаил
Уровень 32
31 марта, 19:16
Согласен, задачи больше про println, нежели про методы)
Anonymous #3628287
Уровень 1
8 марта, 11:52
Будет очень приятно, если добавите еще одну-две задачи на каждую такую статью, чтобы можно было довести навыки до автоматизма.
Anonymous #3628287
Уровень 1
8 марта, 11:51
Пожалуйста, пишите статьи чуть-чуть покороче, сложно воспринимать длинную статью, когда речь идет о техническом материале. И спасибо за великолепный материал!!!
26 января, 19:05
В целом, если удалить весь код и писать всё самому, даже интересно. Только пока попадёшь под условия задачи потеряешь попытки, но за то поймешь как это делать.
Константин
Уровень 12
19 января, 19:21
"Я шел сюда на перестрелку, как в вестерне"...
28 мая, 18:44
Это не задачи, а какие-то скалки из программы "Весёлый пекарь"
matematik200
Уровень 1
25 декабря 2025, 09:54
все задачи решены( вставить одну строку вывести на экран - задание не для этой темы это плохо
15 ноября 2025, 19:23
Такое ощущение, что задачи первого и второго урока поменяли местами.
Ksanders
Уровень 32
2 октября 2025, 13:52
На мой взгляд, задачи этой лекции максимально однообразные и скучные. Среднее число попыток пользователей на каждую задачу "1,2" говорит само за себя.