Как сделать метод в java

Обновлено: 05.07.2024

Практически весь код в Java пишется в методах. Рассмотрим синтаксис написания методов.

Общая форма объявления метода:

Существует также такое понятие как сигнатура метода Java языка - это имя метода и его параметры. Возвращаемый тип не входит в сигнатуру.

Методы в Java не возвращающие значение

В следующем примере метод print не принимает на вход никаких значений - список параметров у него пустой. Возвращаемый тип у него void - это значит, что он ничего не возвращает.

Методы в Java возвращающие значение

Метод getVolume принимает на вход три параметра типа double , а также возвращает значение типа double . Метод возвращает значение с помощью ключевого слова return :

2. Тип метода

Тип обозначает конкретный тип данных, возвращаемых методом. Он может быть любым допустимым типом данных, в том числе и типом созданного класса.

Если метод не возвращает значение, то его возвращаемым типом должен быть void .

Методы, возвращаемый тип которых отличается от void , возвращают значение: return значение;

3. Имя и параметры метода

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

Список параметров обозначает последовательность пар "тип-идентификатор", разделенных запятыми. По существу, параметры - это переменные, которые принимают значения аргументов, передаваемых методу во время его вызова. Если у метода отсутствуют параметры, то список_параметров оказывается пустым.

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

5. Параметр и аргумент

Важно различать два термина: параметр и аргумент.

Параметр - это переменная, определенная методом, которая принимает значение при вызове метода.

Аргумент - это значение, передаваемое методу при его вызове. Например, square(100) передает 100 в качестве аргумента. Внутри метода square() параметр i получает это значение.

alt text

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

alt text

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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-диаграммы (методы)

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

    Имена полей и их типы в диаграммах пишутся через двоеточие, например: 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 .

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

      . И всегда можно нагуглить подходящий редактор именно для Вас.

    Вам ответят команда поддержки Хекслета или другие студенты.

    Нашли опечатку или неточность?

    Выделите текст, нажмите ctrl + enter и отправьте его нам. В течение нескольких дней мы исправим ошибку или улучшим формулировку.

    Что-то не получается или материал кажется сложным?
    • задайте вопрос. Вы быстрее справитесь с трудностями и прокачаете навык постановки правильных вопросов, что пригодится и в учёбе, и в работе программистом;
    • расскажите о своих впечатлениях. Если курс слишком сложный, подробный отзыв поможет нам сделать его лучше;
    • изучите вопросы других учеников и ответы на них. Это база знаний, которой можно и нужно пользоваться.
    Об обучении на Хекслете

    Открыть доступ

    Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.

    Метод – это набор выражений, которые объединены вместе для выполнения определённой операции.

    В этом уроке мы более подробно изучим, как создавать собственные методы. Рассмотрим методы, возвращающие определённое значение, и которые – нет. Также, мы поговорим о том, что такое перезагрузка метода.

    В общем виде, методы выглядит следующим образом:

    Метод состоит из следующих сущностей:

    • Модификатор
      Модификатор метода говорит компилятору как вызывать данный метод и определяет уровень доступа данного метода. Модификатор не является обязательной частью объявления метода.
    • Возвращаемый тип
      Метод возвращать значение. Возвращаемый тип – это тип данных, который будет возвращён данным методом. Если нам не нужно, чтобы метод возвращал значение, то мы должным использовать ключевое слово void в качестве возвращаемого типа.
    • Имя метода
      Непосредственно, имя метода, которе является его идентификатором.
    • Параметры
      Если нам необходимо, выполнить определённые вычисления, например получить сумму двух чисел, то мы должны передать методу эти два числа. Передать эти числа мы можем с помощью параметров метода. Мы должны указать тип данных этих параметров. Метод также может не иметь параметров.
    • Тело метода
      Тело метода включает в себя набор выражений, которые определяют поведение метода. В случае со сложением двух чисел, метод выполнит операцию сложения.

    Для понимания того, как это работает на практике, рассмотрим пример простого приложения.

    В результате работы программы мы получим следующий результат:

    Перегрузка методов

    Иногда нам необходимо выполнять одни и те же операции для разных типов данных. Например, нам необходимо определять сумму не только для целых чисел, но и для чисел с плавающей точкой. Перегруженный метод должен иметь такое же название, как и первый, но список параметров должен отличаться (либо типы данных, либо количество параметров, либо и то, и другое). Рассмотрим пример простого приложения.

    В результате работы программы мы получим следующий результат:

    Конструкторы

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

    Все классы имеют конструктор. Даже если он не объявлен явно, то используется конструктор по умолчанию (без аргументов – всем переменным присваиваются значения по умолчанию, согласно спецификации).

    Рассмотрим пример простого приложения с использованием конструктора.

    В результате работы программы мы получим следующий результат:

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

    Если переменные и константы хранят некоторые значения, то методы содержат собой набор операторов, которые выполняют определенные действия.

    Общее определение методов выглядит следующим образом:

    Модификаторы и параметры необязательны.

    По умолчанию главный класс любой программы на Java содержит метод main, который служит точкой входа в программу:

    Ключевые слова public и static являются модификаторами. Далее идет тип возвращаемого значения. Ключевое слово void указывает на то, что метод ничего не возвращает.

    Затем идут название метода — main и в скобках параметры метода — String[] args . И в фигурные скобки заключено тело метода — все действия, которые он выполняет.

    Создадим еще пару процедур:

    Условно методы, которые не возвращают никакого значения, называются процедурами .

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

    В функции в качестве типа возвращаемого значения вместо void используется любой другой тип. В данном случае тип int и тип String . Функции также отличаются тем, что мы обязательно должны использовать оператор return , после которого ставится возвращаемое значение.

    При этом возвращаемое значение всегда должно иметь тот же тип, что значится в определении функции. И если функция возвращает значение типа int , то после оператора return стоит целочисленное значение (как в данном случае число 1), которое неявно является объектом типа int .

    Использование методов в программе

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

    Читайте также: