1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wizardforcel-thinking-in-java-zh

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
2.5 方法、参数和返回值.md 8.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 11.03.2025 09:15 d56454c

2.5 Методы, параметры и возвращаемое значение

До сих пор мы использовали слово "функция" (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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/wizardforcel-thinking-in-java-zh.git
git@api.gitlife.ru:oschina-mirror/wizardforcel-thinking-in-java-zh.git
oschina-mirror
wizardforcel-thinking-in-java-zh
wizardforcel-thinking-in-java-zh
master