Spec-Zone .ru
спецификации, руководства, описания, API
След: Изучение Языка Java
Урок: Классы и Объекты
Раздел: Классы
Определение Методов
Домашняя страница > Изучение Языка Java > Классы и Объекты

Определение Методов

Вот пример типичного объявления метода:

public double calculateAnswer(double wingSpan, int numberOfEngines,
                              double length, double grossTons) {
    //do the calculation here
}

Единственные необходимые элементы объявления метода являются типом возврата метода, именем, парой круглых скобок, (), и тело между фигурными скобками, {}.

Более широко у объявлений метода есть шесть компонентов в порядке:

  1. Модификаторы — такой как public, private, и другие Вы узнаете позже.
  2. Тип возврата — тип данных значения, возвращенного методом, или void если метод не возвращает значение.
  3. Имя метода — правила для имен полей применяются к именам методов также, но соглашение немного отличается.
  4. Список параметров в круглой скобке — разграниченный запятой список входных параметров, которым предшествуют их типы данных, включенные круглыми скобками, (). Если нет никаких параметров, следует использовать пустые круглые скобки.
  5. Список исключения — чтобы быть обсужденным позже.
  6. Тело метода, включенное между фигурными скобками — код метода, включая объявление локальных переменных, идет сюда.

Модификаторы, возвратите типы, и параметры будут обсуждены позже в этом уроке. Исключения обсуждаются в более позднем уроке.


Определение: Два из компонентов объявления метода включают сигнатуру метода — имя метода и типы параметра.

Подпись метода, объявленного выше:

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) отличные и уникальные методы, потому что они требуют различных типов параметра.

Невозможно объявить больше чем один метод с тем же самым именем и тем же самым числом и типом параметров, потому что компилятор не может сказать им обособленно.

Компилятор не рассматривает тип возврата, дифференцируя методы, таким образом, невозможно объявить два метода с той же самой подписью, даже если у них есть различный тип возврата.


Отметьте: Перегруженные методы должны использоваться экономно, поскольку они могут сделать код намного меньше читаемым.

Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Объявление Задействованных Переменных
Следующая страница: Обеспечение Конструкторов для Ваших Классов