|
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) отличные и уникальные методы, потому что они требуют различных типов параметра.
Невозможно объявить больше чем один метод с тем же самым именем и тем же самым числом и типом параметров, потому что компилятор не может сказать им обособленно.
Компилятор не рассматривает тип возврата, дифференцируя методы, таким образом, невозможно объявить два метода с той же самой подписью, даже если у них есть различный тип возврата.