До сих пор мы использовали слово "функция" (function) для обозначения названного подпроцесса. Однако в Java более распространенным термином является "метод" (method), что означает "способ выполнения чего-либо". Хотя эти два слова имеют одинаковое значение, начиная с этого момента, книга будет использовать термин "метод", а не "функцию".
Методы Java определяют сообщения, которые объект может принимать. В этом разделе вы узнаете, как просты могут быть методы!
Основные компоненты метода включают имя, параметры, тип возврата и тело. Вот его базовая форма:
тип_возврата имя_метода( /* список_параметров */ ) { /* тело_метода */ }
Тип возврата указывает на тип значения, которое возвращает вызов метода. Очевидно, имя метода используется для идентификации и обращения к конкретному методу. Список параметров представляет типы и имена информации, которую требуется передать методу.Методы Java можно создавать только как часть класса. Метод можно вызвать только для определённого объекта (Примечание ③), и этот объект должен иметь возможность выполнять вызов метода. При попытке вызова неверного метода для объекта возникает сообщение об ошибке во время компиляции. Для вызова метода для объекта необходимо сначала указать имя объекта, затем поставить точку и указать имя метода вместе со списком параметров. То есть имя_объекта.имя_метода(параметр1, параметр2, параметр3...)
. Например, если у нас есть метод с именем f()
, который не имеет параметров и возвращает значение типа int
, то при наличии объекта с именем a
, мы можем вызвать метод f()
следующим образом:```
int x = a.f();
Тип возвращаемого значения должен быть совместим с типом переменной `x`.
Подобный вызов метода обычно называется "отправка сообщения объекту". В приведенном выше примере сообщение — это `f()`, а объект — это `a`. Программирование на основе объектов часто сводится к отправке сообщений объектам.
③: Как вы скоро узнаете, "статический" метод можно вызвать относительно класса без необходимости создания объекта.
## 2.5.1 Список параметров
Параметрический список указывает, какие данные мы передаем методу. Как вы, возможно, уже догадались, эти данные — как и все остальное в Java — представлены в виде объектов. Поэтому нам необходимо указывать типы объектов, которые мы передаем, а также имя каждого объекта в списке параметров. Так же, как при работе с объектами в других частях Java, мы фактически передаем "ссылки" (Примечание ④). Однако тип этих ссылок должен быть правильным. Если параметр представляет собой "строку", то передаваемым должно быть именно значение типа `String`.④: Для ранее упомянутых "специальных" типов данных `boolean`, `char`, `byte`, `short`, `int`, `long`, `float` и `double` существует исключение. Однако при передаче объектов обычно имеют в виду передачу ссылки на объект.
Рассмотрим метод, который принимает строку как аргумент. Ниже приведён код этого метода, который должен находиться внутри определения класса, чтобы компилироваться:```markdown
int хранение(String s) {
return s.length() * 2;
}
Этот метод сообщает нам, сколько байтов требуется для хранения информации в определенной строке (каждый символ строки занимает 16 бит, то есть 2 байта, что обеспечивает поддержку символов Unicode). Тип параметра — String
, и он называется s
. Как только s
передается методу, его можно использовать так же, как и любой другой объект (отправлять ему сообщения). В данном случае мы вызываем метод length()
, который является одним из методов класса String
. Этот метод возвращает количество символов в строке.
Пример выше также демонстрирует использование ключевого слова return
. Оно выполняет две основные задачи. Во-первых, это указывает на то, что "выходим из метода, работа завершена". Во-вторых, если метод генерирует значение, то это значение следует за оператором return
. В этом случае возвращаемое значение вычисляется с помощью выражения s.length() * 2
.
Можно вернуть значения любого типа, но если нет необходимости возвращать что-либо, можно указать методу возвращать void
(пусто). Примеры таких методов представлены ниже:
boolean флаг() { return true; }
float естественная_основа_логарифма() { return 2.718; }
void ничего() { return; }
void ничего2() {}
```Если тип возврата — `void`, то единственной ролью ключевого слова `return` является выход из метода. Поэтому после достижения конца метода ключевое слово `return` больше не требуется. Можно вернуться из метода в любом месте. Но если указан тип возврата, отличный от `void`, компилятор гарантирует, что возвращаемое значение имеет правильный тип.На данный момент возможно сложилось мнение, что программа представляет собой набор объектов, методы которых используют другие объекты в качестве своих параметров и отправляют им сообщения. Это верно в общих чертах, однако дальнейшие занятия покажут, как принимать решения внутри метода и выполнять более детальную работу. В рамках данной главы достаточно понять принцип передачи сообщений.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )