2016-09-08 15 views
3

Я считаю, что у меня возникли проблемы с пониманием того, как дать подпись метода на Java. Например, если мой код был:Как определить сигнатуры метода в Java?

public void addOn(Fraction other) { 
     number = other.denominator * number + other.numerator * denominator; 
     denominator = denominator * other.denominator; 

и мне пришлось дать подпись метода addOn();

Будет ли подпись для этого метода просто addOn (Fraction) ;?

+1

@azurefrog Тип возврата не является частью подписи. – khelwood

+1

См. [Здесь] (https://docs.oracle.com/javase/tutorial/java/javaOO/methods.html) для спецификации сигнатуры метода. – khelwood

+0

@khelwood Спасибо, это помогло мне понять намного больше о том, как работают подписи! –

ответ

2

В Java метод подпись содержит имя методы и тип данных только и ничего больше аргументов.

Для, например, в методе публикуемую Вами выше:

public void addOn(Fraction other) { 

} 

подпись будет аддон (фракция).

Это одно из отличий между C++ и java в сигнатуре C++, также содержит тип возвращаемого значения, но в качестве возвращаемого типа java не является частью сигнатуры метода. Таким образом, в случае C++-метода подпись вышеуказанного метода будет void addOn (Fraction);

+0

Типы типов аргументов также потому, что в случае, если метод является методом (int a, String b), то для этого метода сигнатура будет методом (int, String), который уже заботится о порядке, как после изменения порядка, то есть метода (String, int) также изменяется тип аргумента/ –

+1

Выше код будет проблемой, поскольку номер не инициализирован –

3

Это действительно зависит от уровня точности, который вам нужен.

Когда вы неформально поговорить с вами сослуживца, то «подпись», вероятно, содержит всю информацию о том, что человеческое существо может найти интересное:

  1. возвращение типа
  2. имя метода
  3. типы параметров (в том числе их заказ!)
  4. бросает список
  5. (аннотации)

Принимая во внимание, что вы пришли из компилятора-конструктора или, может быть, JVM compiler, точка зрения, ответ другой; в этом случае важны только пункты 2 и 3; все остальное не часть подпись.

1

Если вы хотите передать Fraction как параметр в класс. Прежде всего, необходимо создать ссылку на Fraction как

Фракция исх = новая фракция(); // Предполагаем, что класс Дробь имеет конструктор по умолчанию

Затем вы можете передать их;

аддон (ссылка); // Код класса фракции в качестве параметра

0

Я считаю, что вы должны обратиться this article.

В нем четко говорится, что метод подписи содержит только:

  1. Имя метода
  2. Типы параметров, то есть, тип и порядок параметров

Все другие части, такие как исключения, возвращающих типы, аннотации являются частью объявления метода не подписи.

Наряду с этими синтаксическими вещами при выборе имени метода следует также учитывать семантику.

  • Имя метода должно следовать верблюда корпус
  • Имя метода должно быть значимое
  • имя метода должно начинаться с глагола

Я рекомендовал бы вам пройти через java coding guidelines.

 Смежные вопросы

  • Нет связанных вопросов^_^