Spec-Zone .ru
спецификации, руководства, описания, API
|
Вот пример типичного объявления метода:
public double calculateAnswer(double wingSpan, int numberOfEngines, double length, double grossTons) { //do the calculation here }
Единственные необходимые элементы объявления метода являются типом возврата метода, именем, парой круглых скобок, ()
, и тело между фигурными скобками, {}
.
Более широко у объявлений метода есть шесть компонентов в порядке:
public
, private
, и другие Вы узнаете позже.void
если метод не возвращает значение.()
. Если нет никаких параметров, следует использовать пустые круглые скобки.Модификаторы, возвратите типы, и параметры будут обсуждены позже в этом уроке. Исключения обсуждаются в более позднем уроке.
Подпись метода, объявленного выше:
calculateAnswer(double, int, double, double)
Хотя имя метода может быть любым юридическим идентификатором, соглашения кода ограничивают имена методов. Условно, имена методов должны быть глаголом в нижнем регистре или имени многословном, которое начинается с глагола в нижнем регистре, сопровождаемом прилагательными, существительными, и т.д. На имена многословные должна быть использована для своей выгоды первая буква каждого из вторых и после слов. Вот некоторые примеры:
run runFast getBackground getFinalData compareTo setX isEmpty
Как правило, у метода есть уникальное имя в пределах его class. Однако, у метода могло бы быть то же самое имя как другие методы из-за перегрузки метода.
Язык программирования Java поддерживает перегружающиеся методы, и Java может различить методы с различными сигнатурами методов. Это означает, что у методов в пределах class может быть то же самое имя, если у них есть различные списки параметров (есть некоторые квалификации к этому, которое будет обсуждено в уроке, названном "Интерфейсы и Наследование").
Предположите, что у Вас есть class, который может использовать чистописание, чтобы потянуть различные типы данных (строки, целые числа, и так далее), и это содержит метод для рисования каждого типа данных. Это является громоздким, чтобы использовать новое имя для каждого метода — например, drawString
, drawInteger
, drawFloat
, и так далее. В языке программирования Java можно использовать то же самое имя для всех методов рисунка, но передать различный список параметров к каждому методу. Таким образом данные, тянущие class, могли бы объявить четыре названные метода draw
, у каждого из которых есть различный список параметров.
public class DataArtist { ... public void draw(String s) { ... } public void draw(int i) { ... } public void draw(double f) { ... } public void draw(int i, double f) { ... } }
Перегруженные методы дифференцируются числом и типом параметров, которые передают в метод. В примере кода, draw(String s)
и draw(int i)
отличные и уникальные методы, потому что они требуют различных типов параметра.
Невозможно объявить больше чем один метод с тем же самым именем и тем же самым числом и типом параметров, потому что компилятор не может сказать им обособленно.
Компилятор не рассматривает тип возврата, дифференцируя методы, таким образом, невозможно объявить два метода с той же самой подписью, даже если у них есть различный тип возврата.