JavaRush /Курсы /Java Syntax Pro /Создание своих функций, передача параметров

Создание своих функций, передача параметров

Java Syntax Pro
6 уровень , 0 лекция
Открыта

1. Функции/Методы в Java

Вы уже выучили большое количество команд в Java, и это значит, что вы можете писать достаточно сложные программы. 10, 20, 30 строк кода в программе — не такая и большая программа, верно?

А вот программа в 100+ строк — уже большая, и разбираться в ее коде довольно сложно. Можно ли как-то упростить написание и чтение программ с большим количеством кода?

Да, и помогут нам в этом методы (функции).

Что же такое метод? Ну, если очень сильно упростить, то метод — это группа команд, у которой есть уникальное имя. Другими словами, мы просто компонуем несколько команд в одну группу и даем ей уникальное имя. И все — метод готов.

Пример:

Без метода С методом
class Solution
{
   public static void main(String[] args)
   {
     System.out.print("Wi-");
     System.out.println("Fi");
     System.out.print("Wi-");
     System.out.println("Fi");

     System.out.print("Wi-");
     System.out.println("Fi");
   }
}
class Solution
{
   public static void main(String[] args)
   {
     printWiFi();
     printWiFi();
     printWiFi();
   }
   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}

В программе в левой колонке у нас три раза повторяется один и тот же код — мы так специально сделали для примера. А в программе справа мы вынесли повторяющийся код в отдельный метод и дали ему уникальное имя — printWiFi.

И вместо вынесенного кода 3 раза написали вызов метода printWiFi().

Когда программа в колонке справа будет исполняться, каждый раз при выполнении команды printWiFi() она будет выполнять все команды внутри метода printWiFi(). Мы просто создали новую команду (метод), объединив в одну группу несколько команд.

Любой код можно разбить на отдельные методы. Это делают для упрощения: считается, что лучше иметь много маленьких методов, чем один большой.  Скоро вы будете удивляться тому, что раньше писали свои программы, но не писали свои методы.


2. Объявление метода в Java

Так как все-таки правильно написать свой метод?

При объявлении (создании) метода нужно учитывать много нюансов, но давайте начнем с основного. Как нам все-таки объявить самый простой метод? Объявление простого метода выглядит так:

public static void имя()
{
   код метода
}

Где имя — это уникальное имя метода, а код метода — это команды, из которых состоит метод. Значение слов public, static и void мы рассмотрим несколько позднее.

После того, как мы создали метод, мы можем вызывать его в других наших методах. Вызов выглядит так:

имя();

Где имя — это уникальное имя метода, который мы хотим вызвать, и команды которого мы хотим выполнить в месте его вызова.

Когда программа дойдет до команды, содержащей вызов нашего метода, она просто перейдет в метод, выполнит все его команды, вернется в изначальный метод и продолжит выполнение.

Как вы уже, наверное, догадались, большая часть изученных нами ранее команд — это просто методы, написанные другими программистами, чтобы облегчить нам жизнь: System.out.println(), Thread.sleep(), и т.д.

Код метода может содержать вызовы других методов:

Код Примечание
class Solution
{
   public static void main(String[] args)
   {
     printWiFi10Times();
   }

   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }

   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}




Вызываем метод printWiFi10Times()


Объявляем метод printWiFi10Times


Вызываем метод printWiFi() 10 раз в цикле


Объявляем метод printWiFi

Выводим на экран текст:
Wi-Fi

3. Факты о методах

Вот еще несколько фактов о методах:

Факт 1. Метод — это всегда часть класса.

Метод можно объявить только в классе.  Метод нельзя объявить внутри другого метода. Метод нельзя объявить вовне класса.

Факт 2. Имя метода не несет сакрального смысла

Неважно, как называются методы — это ни на что не влияет. Метод main — это такой же метод, как и все остальные. Просто такое имя выбрали для метода, с которого Java-машина начинает исполнение программы. Ничего волшебного в нем нет.

Факт 3. Порядок методов в классе не важен

Вы можете написать ваши методы в классе в любом порядке — это никак не повлияет на выполнение программы. Пример:

Код
class Solution
{
   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }
   
   public static void main(String[] args)
   {
     printWiFi10Times();
   }

   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}
class Solution
{
   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }

   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }
   public static void main(String[] args)
   {
     printWiFi10Times();
   }
}

Факт 4. Переменные внутри одного метода никак не связаны с переменными других методов

Что происходит в Вегасе, остается в Вегасе. А переменные, объявленные внутри метода, остаются внутри этого метода.

В двух соседних методах могут быть объявлены одинаковые переменные, и эти переменные никак не связаны друг с другом.


4. Имена методов

Уже давно известно, что в программировании две самые сложные проблемы — как правильно подобрать название метода и как назвать переменную.

На самом деле, уже существует чуть ли не целая наука о том, как правильно называть методы. И у каждого языка программирования есть свои стандарты. В Java принято руководствоваться такими принципами:

Принцип 1. Имя метода должно кратко описывать то, что этот метод делает.

Тогда программист, который читает ваш код, по имени метода сможет догадаться, что этот код делает, и ему не нужно будет каждый раз смотреть код вызываемых методов. Да и назначение методов запомнить легче.

Вспомните тот же Thread.sleep() — «усыпить программу» и Scanner.nextInt() — «считать следующее целое число». Удобно же, правда.

Принцип 2. Имя метода может состоять из нескольких слов.

Однако для этого случая есть несколько ограничений:

  • Пробелы в имени метода писать нельзя: все слова пишутся слитно.
  • Каждое слово пишется с большой буквы, кроме первого.
  • Имя метода всегда пишется с маленькой буквы

Вспомните тот же метод printWiFi10Times. Что значит его имя? «написать 10 раз слово WiFi». Много слов в имени метода писать не нужно: имя должно отражать самую суть.

Такой стандарт написания имен называется CamelCase (Camel — верблюд. Большие буквы похожи на верблюжьи горбы).

Принцип 3. Имя метода начинается с глагола.

Метод всегда что-то делает, поэтому первое слово в названии метода — это всегда действие.

Плохие имена для метода: home, cat, car, train, ...;

Хорошие имена: run, execute, print, read, write, ...

Принцип 4.  Используйте только латинские буквы и цифры

Java очень хорошо поддерживает разные языки. Вы можете написать имена переменных, методов и классов хоть на русском, хоть на китайском — все будет работать!

Но! Как долго вы бы учили Java, если бы названия метода System.out.println() было на китайском? Гораздо дольше, чем сейчас, не так ли? Это, во-первых.

Во-вторых, над многими проектами работают интернациональные команды. Очень большое количество Java-библиотек используется программистами со всего мира.

Поэтому рекомендуется в именах методов использовать только латинские буквы и цифры.

Важно:
Имя метода обязательно должно начинаться с буквы (с цифры — нельзя).


Комментарии (342)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Anonymous #6463865 Уровень 7
19 июля 2026

package com.javarush.task.pro.task06.task0602;
/* Упорядоченная информация */

public class Solution {
    public static void main(String[] args) {
        System.out.println("Я — поэт, зовусь я Цветик.");
        System.out.println("От меня вам всем приветик.");
    }
}
Anonymous #6463865 Уровень 7
19 июля 2026

package com.javarush.task.pro.task06.task0601;
/* Разделяй понятия */

public class Solution {
    public static void main(String[] args) {
        printHydrogenInfo();
        printJavaInfo();
    }

    public static void printHydrogenInfo() {
        System.out.println("Водород:");
        System.out.println("Это химический элемент периодической системы с обозначением H и атомным номером 1.");
        System.out.println("Является самым легким элементом таблицы.");
        System.out.println("Водород применяется в:");
        System.out.println("-Химической промышленности;");
        System.out.println("-Нефтеперерабатывающей промышленности;");
        System.out.println("-Авиации;");
        System.out.println("-Электроэнергетике.");
    }
    
    public static void printJavaInfo() {
        System.out.println("Остров Ява:");
        System.out.println("Входит в состав Индонезии.");
        System.out.println("На острове зародились государства Матарам, Маджапахит, Демак.");
        System.out.println("Ява является самым населенным островом в мире:");
        System.out.println("Общее население — 140 млн. человек.");
        System.out.println("Плотность населения — 1061 чел/км.кв.");
        System.out.println("Здесь производят один из знаменитых сортов кофе — Копи Лювак.");
    }
}

Anna Klushkina Уровень 61
5 января 2026
⛏ очень простая тема, жаль открытие лекций дорогое
Александр Уровень 12
19 декабря 2025
объясните пожалуйста :Факт 1. Метод — это всегда часть класса. Метод можно объявить только в классе. Метод нельзя объявить внутри другого метода. Метод нельзя объявить вовне класса. Метод нельзя объявить внутри другого метода. а как же здесь,метод внутри метода public static void printWiFi10Times() { for (int i = 0; i < 10; i++) printWiFi();
Alex Уровень 17
24 декабря 2025
Внутри метода можно вызывать другие методы, что собственно тут и сделано. Однако объявлять (создавать) методы нужно отдельно внутри класса. В примере метод вызван внутри другого метода, но вызванный метод сам по себе создан и объявлен вне этого метода.
Роман Зарубин Уровень 8
2 декабря 2025
Работаем !
C0N5P1RACY Уровень 1
29 ноября 2025
Ммм, в комиксах мясо пошло... Возрастные ограничения нашего комикса поднимаются :) На самом деле тут про методы намного лучше рассказано чем в новом курсе, да и в целом посмотрев сначала на новый курс, а теперь на этот, могу точно сказать что этот курс намного лучше и понятнее, спасибо!
Магомед Уровень 9
14 января 2026
о каком курсе вы говорите?
C0N5P1RACY Уровень 1
15 января 2026
JAVA 25 SELF
Anonymous #3585174 Уровень 33
5 июня 2025
like
Алина Уровень 10
29 мая 2025
Какие легкие задания, всегда бы такие 😄 сразу чувствуешь себя супер умной))
Александр Уровень 92
1 апреля 2025
"Вспомните тот же Thread.sleep() " Вспомнили, ага ))) Привет из будущего))
Сергей Уровень 28
22 февраля 2025
Не до конца разобрался: по сути выполняется только метод main(), а методы, созданные нами, выполняются только в теле метода main()? Так? Т.е. все созданные нами методы(функции) мы запускаем в этом методе, но когда программа доходит до наших методов, до места, где они в коде, они не выполняются сами по себе? Ну, как напр. function() в PHP
IILONE Уровень 2
5 марта 2025
Я так понял,что в методе main мы просто вызываем другие методы и потом эти методы исполняются отдельно,не в теле метода main,в нем мы просто включаем другие методы (я так это понял)
6 марта 2025
изначально при запуске программы работает метод main, а остальные методы уже должны быть встроены в него или в другие методы которые уже встроены чтобы работать
empty Уровень 21
18 апреля 2025

- но когда программа доходит до наших методов
- они не выполняются сами по себе
Если грубо, то программа доходит и выполняет только до те методы которые вызваны в main.
Тимур Зозулин Уровень 7
24 апреля 2025
правильно
Entropie Уровень 8
26 сентября 2025
Как я понимаю, при запуске программы сперва все наши методы загоняются в оперативную память(в отличии от переменных, которые мы создаем в конкретном месте), а потом мы начинаем идти по программе от начала метода main, и программа уже знает созданные методы(класса Solution, в котором все происходит), остается их только вызвать в нужном месте в main, или в методе, который вызвывается в main.