Введение в Java
2026-02-26 17:19 Diff

Внимание! На слайде в уроке допущена опечатка: вместо car.setSpeed(spped) должно быть car.setSpeed(speed).

Внимание! Перед тем как нажать кнопу "далее" внимательно изучите текстовый материал и полезные ссылки!

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

Логично, что для появления такого члена класса как метод — его нужно объявить.

Метод не является объектом в java сам по себе. Он всегда привязан к конкретному классу или объекту этого класса.

Метод объявляется всегда внутри тела класса. То есть между открывающей и закрывающей скобками класса. Желательно это делать после объявления всех полей класса.

Метод не может быть объявлен:

  • внутри другого метода;
  • внутри отдельного блока кода в пределах класса;
  • за пределами класса;
  • внутри условных операторов, циклов и пр.

Исключение составляют анонимные классы. Но об этом будет отдельный урок.

Объявление метода состоит из:

  • модификатора доступа (private, package-private aka default, protected, public);
  • модификатора уровня (static or not);
  • возвращаемого типа;
  • идентификатора этого метода (имя, по которому к нему можно будет обратиться);
  • аргументов в круглых скобках, которые пишутся сразу за идентификатором, без пробелов (methodName(int a, int b));
  • фигурных скобок, в которые заключено тело метода.

Пример 1:

Пример 2:

Пример 3:

Что означают все эти слова в объявлении метода?

Разберем этот вопрос на примере метода, с которого начинается каждая программа:

  • public — это модификатор доступа (видимости). Конкретно public говорит, что этот метод доступен любому внешнему классу или программе.

    Более детально о модификаторах доступа расскажем в пятом модуле.

  • static — это модификатор, отвечающий за уровень метода. Если есть такой модификатор — метод находится на уровне класса, а не объекта. Если нет модификатора static — метод уровня объекта!

    Уровень метода:

    + или class level + или instance level (without keyword)

Детально эта тема будет рассмотрена буквально через урок.

  • void — конкретно это ключевое слово говорит, что метод ничего не возвращает. На его месте может быть любой тип из мира java — такой тип и должен возвращать метод.

    Что может возвращать метод:

    • any type (любой тип) и даже null. Не важно что это, примитив или ссылочный тип. Но обязательно должно быть ключевое слово return в теле метода.
    • void --> Просто ничего не возвращать. Даже null. Ключевое слово return не требуется, но может быть применено для преждевременного завершения работы метода, по задумке программиста.
  • main — это идентификатор, имя метода. Конкретно в случае с main-методом — это не просто имя, а метод с которого начинает выполняться вся программа.

    • имя метода:
      • пишется в camelStyle - каждое слово в имени метода пишем с большой буквы, кроме самого первого слова;
      • имя метода должно быть говорящим, как и у переменных. Только в случае с методом - имя должно быть глаголом!
  • (String[] args) — в круглых скобках перечислены аргументы данного метода. Их может и не быть вовсе в каком-то методе, а в каком-то и десяток набежать.

  • ... // некий код в теле метода — это непосредственно тело метода, находящееся между фигурных скобок: {}. Именно внутри этих фигурных скобок и нужно писать логику которая, используя аргументы и поля класса, будет что-то вычислять.

Как вызвать метод?

Разберем на примере следующего класса:

Для начала создадим объект и ссылку на него: Car car = new Car(); // именно car с маленькой буквы, в данном примере, является ссылкой

Создавать этот объект необходимо в месте, где мы будем его использовать. Пускай это будет main-метод.

Если метод не статический, то для обращения к нему нужно:

  • иметь ссылку на инстанс --> car
  • использовать точку --> car.
  • указать имя метода после точки --> car.startEngine
  • передать аргументы, если они ожидаются --> car.setSpeed(12); или не передать, если не ожидаются --> car.setSpeed();

Вот так это выглядит в коде:

Если метод статический, то его можно вызвать как через объект так и через имя класса:

  • car.startEngine(); // вызов через объект
  • Car.startEngine(); // вызов через имя класса

Пример:

Детальнее об этом в уроке про уровни методов.

ключевое слово this

Это ссылка на текущий объект(инстанс). Рассмотрим на примере:

Не стесняйтесь копировать и экспериментировать с кодом локально у себя! И используйте вот этот визуализатор. Он показывает результаты работы отдельных выражений в коде.

Немного модифицированный пример из видео

На наш взгляд этот пример помогает уловить суть происходящего в коде на уроке. Не стесняйтесь тестировать и играться с этим кодом самостоятельно:

Как читать UML-диаграммы (методы)

С индикаторами модификаторов доступа Вы уже должны быть знакомы:

+ public - private # protected default (нет никакого модификатора доступа)

Имена полей и их типы в диаграммах пишутся через двоеточие, например: countr: int, name: String. Но в коде, не забывайте, сначала пишем тип, а потом имя.

С методами почти тот же подход, только слов больше.

Например, если в диаграмме написано:

  • + getAge(): int — этот метод public, имеет имя getAge и возвращает объект типа int.
  • - computeSomething(data1: Data, data2: Data): String — этот метод private, имеет имя computeSomething, возвращает объект типа String, на вход принимает два аргумента с именами data1 и data2, оба типа Data.
  • + setName(newName: String): void — это публичный метод с именем setName, ничего не возвращает (void — пустота), принимает на вход аргумент с именем newName типа String.

Полезные ссылки