Как сделать метод в java
Практически весь код в Java пишется в методах. Рассмотрим синтаксис написания методов.
Общая форма объявления метода:
Существует также такое понятие как сигнатура метода Java языка - это имя метода и его параметры. Возвращаемый тип не входит в сигнатуру.
Методы в Java не возвращающие значение
В следующем примере метод print не принимает на вход никаких значений - список параметров у него пустой. Возвращаемый тип у него void - это значит, что он ничего не возвращает.
Методы в Java возвращающие значение
Метод getVolume принимает на вход три параметра типа double , а также возвращает значение типа double . Метод возвращает значение с помощью ключевого слова return :
2. Тип метода
Тип обозначает конкретный тип данных, возвращаемых методом. Он может быть любым допустимым типом данных, в том числе и типом созданного класса.
Если метод не возвращает значение, то его возвращаемым типом должен быть void .
Методы, возвращаемый тип которых отличается от void , возвращают значение: return значение;
3. Имя и параметры метода
Для указания имени метода служит идентификатор имя. Это может быть любой допустимый идентификатор, кроме тех, которые уже используются другими элементами кода в текущей области действия.
Список параметров обозначает последовательность пар "тип-идентификатор", разделенных запятыми. По существу, параметры - это переменные, которые принимают значения аргументов, передаваемых методу во время его вызова. Если у метода отсутствуют параметры, то список_параметров оказывается пустым.
4. Объявление и вызов метода Java
5. Параметр и аргумент
Важно различать два термина: параметр и аргумент.
Параметр - это переменная, определенная методом, которая принимает значение при вызове метода.
Аргумент - это значение, передаваемое методу при его вызове. Например, square(100) передает 100 в качестве аргумента. Внутри метода square() параметр i получает это значение.
Внимание! На слайде в уроке допущена опечатка: вместо car.setSpeed(spped) должно быть car.setSpeed(speed) .
Внимание! Перед тем как нажать кнопу "далее" внимательно изучите текстовый материал и полезные ссылки!
Объявление метода
Логично, что для появления такого члена класса как метод — его нужно объявить.
Метод не является объектом в 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 .
Использование методов в программе
После определения методов их можно использовать в программе. Для вызова метода надо указать его имя, а после него в скобках значения для его параметров:
Читайте также: